%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                             %
%   * The Cove: Ett alternativt {ventyr av (C) Anders Hedstr|m, 1986          %
%                                                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
RFIL=176730; PFIL=176731; DFIL=176732; MFIL=176733; IFIL=176734; KESO=176747
RBLK=170000; PBLK=171000; DBLK=172000; MBLK=173000; IBLK=174000
ARCHMC=11111; XPBLK=175000; RSAVE=176746
CPLR=176735; PORT=176736; MESAD=176737; SPILL=177000; TTY=176744
TSAVE=176740; QSAVE=176741; ZSAVE=176742; XSAVE=176743; L2INT=176745
RDROM=26000; RDPLR=26020; WTROM=26033; WTPLR=26047
RDATA=26010; WDATA=26041; RLINE=26061; WLINE=26064
RITEM=26067; WITEM=26074; INBAZ=26164; CMPST=26252
MOVST=26300; ADDPL=26320; REMPL=26337; LDIR=26373
COMP=27272; GETNA=27362
AHAPP=26416; RHAPP=26421; LF=26600; DROPL=26613; PRIDE=26762; PRIFP=27004
PSWIN=26677; CLINE=26731; INPUT=27542; CONT=27530; ADDL=26746; SUBL=26751
XINIT=27150
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
)FIX   % OVANST]ENDE SYMBOLER GLOBALA                                         %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
)9BEG COVE
)9EXT CKOLL ALLCH RUMUT ALLCH OPEN BUTIK OFFER
)9EXT MOVE QUIT LOG TOGAV
)9EXT CHR DROP HKOLL STAT PLA SAY RDALL
)9EXT CHA PLOK TAPP EAT INFO HLP DODA ROB
)9EXT MAKE VIEW INV TERM PSW GET LOGO
)9EXT PLUT USE SRCH CHP AP BRIEF BYTC
)9EXT PORTC SALDO BEEP TELEP VAKNA RESET
)9EXT HELA SPLS RD WT BLIXT SPCH LISTA
COVE,  JPL I (OPEN
       JMP I (LILL
       LDX   (TCNT           % AT ADDRESS 000002
       MON   32
       JMP I (KESO
&
ADDRS, HELP; SPEL; LOGI; SLUTA; N; S; E; W; U; D
       DO; CHAN
       SAEG; SHOUT; GT; DRP; LASTA; ZTAT; LOOK; AET; TRM; PL; TP; PCH; DOEDA
       CHRM; INF; VJU; LOGUT; ANV; SRC; CPRYL
       APR; BRIF; BYT; PCLR; SLDO; BPEP; TLP; VKNA; HLA; SPELS; RB
       LS; SK; FLASH; LSTA; TGAV; RST; ERB
TERTTY,'$D}lig terminaltyp, Tandberg eller Visual!$'
TDUMBO,'$Kom ih}g att du inte f}r k|ra COVE under dagtid!$'
TCNT,  3477; 'CAN`T CONTINUE ERROR$'
CMD,   '/// The Cove'
T1,    ':'
T2,    '$:'
T3,    'Du spelar redan med en spelare.'
T4,    'Du m}ste spela med en spelare f|rst, anv{nd kommandot V[LJ.'
T5,    'Tryck <ESC> f|r att forts{tta spela:'
T7,    'Du kan inte l{sa/skriva i n}gonting h{r.'
PAR,   (1; (2                % PAUS EN SEKUND
RET,   0
LILL,  JPL I (ZP             % S[TT ESC
       LDA   (153000
       STA I (KESO
       LDA   (CMD
       MON   12              % TILL INPUTBUF
       LDX   (TDUMBO
       MON   32
       MON   143
       MON   16              % MGTTY
       MON   65
       AND   (377
       STA I (TTY
       AAA   -4              % VISUAL
       JAZ   OKJU
       AAA   -61             % TANDBERG
       JAZ   OKJU
       LDX   (TERTTY
       MON   32
       JMP I (KESO
OKJU,  STZ I (CPLR
       STZ I (PORT           % PORT # NOLLST[LLS
       JMP   MAIN
%
% ARCH KOLLAR OM SPELAREN HAR [RKEMAGIKERSTATUS
%
ARCH,  COPY  SL DX
       STX   RET
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+127       % ARCHM
       SUB   (ARCHMC
       JAZ   OKE
       JMP I (O1
OKE,   LDA   RET
       COPY  SA DP
%
% KOLLEN KOLLAR OM EN SPELARE [R VALD [NNU
%
KOLLEN,LDA I (CPLR
       JAF   OKEY
       LDX   (T4
       MON   32
       JMP I (O1
OKEY,  EXIT
&
%
% MAIN LOOP - LOOP, [R ]TERG]NGSPUNKT
%
MAIN,  LDA   (BEHAP
       STA I (L2INT
       JPL I (RDALL          % L[S NAMN P] SPELARE & PRYLAR
                             % ADR: 100000 SPELARE#0, 110000 PRYL#0
LOOP,  LDA I (CPLR
       JAZ   L1              % INGEN SPELARE VALD [NNU
       JPL I (RUMUT
       JPL I (ALLCH
       LDA I (RSAVE
       AAA   -4              % KOLLA OM RUM=4 (BUTIK)
       JAZ   BUT
O1,    LDA I (CPLR
       JAZ   L1
       JPL I (PLUT           % SKRIV UT SPELARE & PRYLAR ENL DESIGN
L1,    LDX   (T2
       MON   32
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDT   (SPILL+400      % RADEN
       LDX   (T1
       JPL I (INPUT          % JU!
       JXZ   L1
       COPY  SX DA
       AAA   -1
       JAZ   OLCMD
       LDT   (SPILL+400      % KOLLA OM " ELLER !
       SAX   0
       LBYT
       AAA   -41
       JAZ   OLCMD
       AAA   -1
       JAZ   OLCMD
CMDCH, JPL I (CKOLL
       JAZ   L1
       ADD   (ADDRS-1
       COPY  SA DX
       LDX   ,X
       JMP   ,X
&
%
% EN HAPP HAR KOMMIT MEDAN J\KEN VAR I INPUTRUTINEN
%
BEHAP, JPL I (HKOLL
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+50        % HP
       AAA   -1
       JAP   TCONT
       JPL I (ALLCH
TCONT, JMP I (CONT
%
% BUTIKEN...
%
BUT,   JPL I (BUTIK          % BUTIK
       JPL   ZP
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+111       % GAMLA RUM
       SAA   3               % RUM 3 TILL ZPEC
%
% ZPEC: FLYTTA TILL RUM A
%
ZPEC,  LDX   (SPILL          % PARAMETRAR TILL MOVE
       STX I (QSAVE          % ADDRESS I QSAVE SOM PEKAR TILL RUM#/PRYL#
       STA   ,X              % RUM
       STZ   ,X 1            % PRYL (0)
       JPL I (MOVE
       JMP   LOOP
%
% ZP - S[TT ESCAPE
%
ZP,    LDA   (LOOP
       MON   300
       STZ   *
       EXIT
&
%
% OLCMD - KOMMANDO 1 BOKSTAV, KOLLAR
%
OLCMD, LDT   (SPILL+400
       SAX   0
       LBYT                  % F\RSTA TECKNET I RADEN
       SAX   41              % !
       SKP   IF SA UEQ DX
       JPL I (SHOUT
       SAX   42              % "
       SKP   IF SA UEQ DX
       JPL I (SAEG
       SAX   77              % ?
       SKP   IF SA UEQ DX
       JMP I (HELP
       ORA   (140            % - SM] BOKST[VER
       SAX   151             % I
       SKP   IF SA UEQ DX
       JMP I (LASTA
       SAX   154             % L
       SKP   IF SA UEQ DX
       JMP I (LOOK
       SAX   144             % D
       SKP   IF SA UEQ DX
       JMP I (D
       SAX   156             % N
       SKP   IF SA UEQ DX
       JMP I (N
       SAX   163             % S
       SKP   IF SA UEQ DX
       JMP I (S              
       SAX   145             % E
       SKP   IF SA UEQ DX
       JMP I (E              
       SAX   166             % V
       SKP   IF SA UEQ DX
       JMP I (W
       SAX   167             % W
       SKP   IF SA UEQ DX
       JMP I (W
       SAX   172             % Z
       SKP   IF SA UEQ DX
       JMP I (ZTAT
       JMP   CMDCH
&
HELP,  JPL I (HLP
       JMP I (L1
INF,   JPL I (INFO
       JMP I (L1
SPELS, JPL I (SPLS
       JMP I (L1
LOOK,  LDA I (PBLK+74
       COPY  SA DD
       SAA   33              % SER SIG OMKRING
       JPL I (RHAPP
       JMP I (LOOP
&
%      TK KR MA PR TJ TR PA
SHELA, 4; 0; 0; 1; 0; 4; 1
SBLXT, 2; 0; 1; 0; 0; 1; 0
HLA,   JPL I (KOLLEN
       LDX   (SHELA
       JPL I (SPCH
       JAF   NIX
       JPL I (HELA
NIX2,  JMP I (L1
FLASH, JPL I (KOLLEN
       LDX   (SBLXT
       JPL I (SPCH
       JAF   NIX2
       JPL I (BLIXT
       JMP I (L1
&
RST,   LDA I (CPLR
       AAA   -1
       JAF   NIX
       JPL I (RESET
       JMP I (L1
LOGUT, LDA I (CPLR
       AAA   -1
       JAF   NIX
       JPL I (LOGO
NIX,   JMP I (L1
TGAV,  LDA I (CPLR
       AAA   -1
       JAF   NIX
       JPL I (TOGAV
       JMP I (L1
&
CPRYL, JPL I (ARCH
       JPL I (CHP
       JMP I (L1
CHAN,  JPL I (ARCH
       JPL I (CHA
       JMP I (L1
APR,   JPL I (ARCH
       JPL I (AP
       JMP I (L1
VJU,   JPL I (ARCH
       JPL I (VIEW
       JMP I (L1
CHRM,  JPL I (ARCH
       JPL I (CHR
       JMP I (LOOP
LSTA,  JPL I (ARCH
       JPL I (LISTA
       JMP I (L1
DO,    JPL I (ARCH
       JPL I (MAKE
       JMP I (LOOP
PCLR,  JPL I (ARCH
       JPL I (PORTC
       JMP I (L1
SLDO,  JPL I (ARCH
       JPL I (SALDO
       JMP I (L1
&
ERB,   JPL I (KOLLEN
       JPL I (OFFER
       JMP I (L1
SHOUT, JPL I (KOLLEN
       SAT   1               % SKRIK, INTE S[G
       JMP   L3
SAEG,  JPL I (KOLLEN
       SAT   0               % S[G, INTE SKRIK
L3,    JPL I (SAY            % FIXA "S[GER"/"SKRIKER" I HKOLL?
       JMP I (L1
BYT,   JPL I (KOLLEN
       JPL I (BYTC
       JMP I (L1
SPEL,  JPL I (KOLLEN
       JPL I (PLA
       JMP I (L1
GT,    JPL I (KOLLEN
       JPL I (GET
       JMP I (O1
DRP,   JPL I (KOLLEN
       JPL I (DROP
       JMP I (O1
VKNA,  JPL I (KOLLEN
       JPL I (VAKNA
       JMP I (L1
&
LOGI,  LDA I (CPLR
       JAZ   LN
       LDX   (T3
       MON   32
       JMP I (L1
LN,    JPL I (LOG
       JMP I (LOOP
SLUTA, LDA I (CPLR
       JAZ   END
       JPL I (HKOLL          % KAN JU HA KOMMIT N]N?
       JPL I (ALLCH
       JPL I (QUIT
END,   JMP I (KESO
DOEDA, JPL I (KOLLEN
       JPL I (DODA
       LDA   (PAR            % HOLD
       MON   104
       JMP I (O1
BRIF,  JPL I (KOLLEN
       JPL I (BRIEF
       JMP I (L1
SRC,   JPL I (KOLLEN
       JPL I (SRCH
       JMP I (O1
PCH,   JPL I (KOLLEN
       JPL I (PSW
       JMP I (L1
TRM,   JPL I (KOLLEN
       JPL I (TERM
       JMP I (L1
AET,   JPL I (KOLLEN
       JPL I (EAT
       JMP I (L1
LASTA, JPL I (KOLLEN
       JPL I (INV
       JMP I (L1
ZTAT,  JPL I (KOLLEN
       JPL I (STAT
       JMP I (L1
&
QW,    0
                             % KLCH KOLLAR OM RUMMET HAR ETT KLOTTERPLANK,
                             % MODIFIERAS EFTER HAND...
KLCH,  COPY  SL DX
       STX   QW
       LDA I (CPLR           % KOLLA OM RUMMET HAR ETT KLOTTERPLANK
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+74
       SUB   (331            % ANSLAGSTAVLA I RUM#217
       JAZ   SEHR
       LDX   (T7             % INGET KLOTTERPLANK H[R..
       MON   32
       JMP I (L1
SEHR,  LDA   QW              % OK, PLANK FINNS
       COPY  SA DP
LS,    JPL I (KOLLEN         % L[S PLANK
       JPL I (KLCH
       JPL I (RD
       JMP I (L1
SK,    JPL I (KOLLEN         % SKRIV PLANK
       JPL I (KLCH
       JPL I (WT
       JMP I (L1
RB,    JPL I (KOLLEN         % R]NA
       JPL I (ROB
       JMP I (L1
TLP,   JPL I (KOLLEN         % TELEPORT
       JPL I (TELEP
       JMP I (O1
BPEP,  JPL I (KOLLEN         % BEEP
       JPL I (BEEP
       JMP I (L1
PL,    JPL I (KOLLEN
       JPL I (PLOK
       JMP I (O1
TP,    JPL I (KOLLEN
       JPL I (TAPP
       JMP I (O1
N,     SAA   0
       SAT   1
       JMP   MOV
S,     SAA   2
       SAT   2
       JMP   MOV
E,     SAA   4
       SAT   3
       JMP   MOV
W,     SAA   6
       SAT   4
       JMP   MOV
U,     SAA   10
       SAT   5
       JMP   MOV
D,     SAA   12
       SAT   6
MOV,   STT I (TSAVE          % DIR, 1-N OSV...
       ADD   (RBLK+240
       STA I (QSAVE
       JPL I (KOLLEN
       JPL I (MOVE
       JAF   NIX3
       JMP I (LOOP
&
SPELLS,HLA; FLASH
ANV,   JPL I (KOLLEN
       JPL I (USE
       JAF   SPELL           % ITEM FUNKADE, UTTALA F\RTROLLNING#A ENLIGT
                             % SPELLS, -LISTA OVAN
NIX3,  JMP I (L1
SPELL, STA I (QSAVE          % SPELL#
       LDT   (SPILL          % EN ' I SPILL, S] DET INTE BLIR N]GOT FR
       SAX   0
       SAA   47
       SBYT
       LDA I (QSAVE          % SPELL#
       ADD   (SPELLS-1       
       LDX   (LF
       MON   32
       COPY  SA DX           % X PEKAR P] SPELL-ADDRESS I LISTA
       SAA   1               % A=1 > USE ITEM
       LDX   ,X
       AAX   4               % SKIP JPL I (KOLLEN; LDX (SLIST; JPL I (SPCH JU!
       JMP   ,X
&
)9END
)CLEAR
)9BEG
)9ENT CKOLL
)9LIB CKOLL
CMDS,  'HJ[LP'; 'VILKA'; 'V[LJ'; 'SLUTA'
       'NORR'; 'S\DER'; '\STER'; 'V[STER'; 'UPP'; 'NED'
       'G\R'
       'CHANGE'
       'PRATA'; 'SKRIK'; 'TA'; 'SL[PP'
       'LISTA'; 'STATUS'; 'SE'; '[T'
       'TERMINAL'
       'PLOCKA'; 'SL[NG'; 'L\SENORD'; 'ANFALL'
       'CHROOM'; 'INFO'; 'VIEW'
       'LOGOUT'; 'ANV[ND'; 'S\K'
       'CHPRYL'; 'AP'; 'BRIEF'
       'BYT'; 'PORTCLEAR'; 'SALDO'; 'BEEP'
       'TELEPORT'; 'VAKNA'; 'HELA'
       'SPELLS'; 'R]NA'; 'L[S'; 'SKRIV'
       'BLIXT'; 'PRINT'; 'TOGGLE'
       'RESET'; 'ERBJUD'
SISTA, '*'
STR1,  0
STR2,  0
LIKA,  0
CHAR,  0
SPLIT, LDX   (SPILL+400      % RADEN
       STX   STR1
       LDX   (SPILL+120      % KOMMANDO
       STX   STR2
       SAX   0
SL1,   LDT   STR1
       LBYT
       LDT   STR2
       SBYT
       AAA   -40             % _
       JAZ   NEXTW
       AAA   -7
       JAZ   ENDZ
NXT,   AAX   1
       JMP   SL1
ENDZ,  LDT   (SPILL
       SAA   47
       SAX   0
       SBYT
ENDE,  EXIT
POS,   0
POSW,  0
NEXTW, SAA   47
       SBYT
       AAX   1
       STX   POS             % I RADEN
       LDX   (SPILL          % ARG ADR
       STX   STR2
       STZ   POSW
SL2,   LDX   POS
       LDT   STR1
       LBYT
       LDX   POSW
       LDT   STR2
       SBYT
       AAA   -47
       JAZ   ENDE
       MIN   POSW
       MIN   POS
       JMP   SL2
&
T1,    'F|rst}r ej, f|rs|k igen.'
T2,    'Tvetydigt kommando, f|rs|k igen.'
ANTAL, 0
ADDR,  0
CMD,   0
RET,   0
C,     0
% RADEN FINNS P] SPILL+400
% FLYTTA KOMMANDO TILL SPILL+120, ARG TILL SPILL
CKOLL, COPY  SL DX
       STX   RET
       JPL   SPLIT           % SPLITTA RADEN
       STZ   ANTAL           % ANTAL KOMMANDON FUNNA
       SAA   1
       STA   C
       LDX   (CMDS
       STX   ADDR
LP,    LDA   (SPILL+120
       LDX   ADDR
       JPL I (COMP
       JAZ   NEXT
       MIN I (ANTAL
       LDA   C
       STA   CMD
NEXT,  MIN   C
       LDT I (ADDR
       SAX   0
L1,    LBYT
       AAA   -47
       JAZ   L2
       AAX   1
       JMP   L1
L2,    COPY  SX DA
       SHA   ZIN SHR 1
       AAA   1
       ADD I (ADDR
       STA I (ADDR
       COPY  SA DX
       LDA   ,X
       SUB   (25047          % '*'
       JAF   LP
       LDA I (ANTAL
       JAZ   NOFIND
       AAA   -1
       JAF   AMB
       JMP I (END
NOFIND,STZ   CMD
       LDX   (T1
       MON   32
       JMP I (END
AMB,   STZ   CMD
       LDX   (T2
       MON   32
END,   LDA   CMD
       LDX I (RET
       COPY  SX DP
&
)9END
)CLEAR
)9BEG
)9ENT ALLCH
)9LIB ALLCH
T1,    '$Du m}ste {ta om ett tag.'
T2,    '$Du sv{lter!'
T3,    '$Du har svultit ihj{l...'
T4,    '$Du har avlidit av }lderdom (Styrka, Iq eller Visdom mindre {n tre).'
T6,    '$Du har avlidit av allvarliga skador under strid...'
TUPP,  '$Du gick upp en niv}!'
ANTAL, 0
RET,   0
ALLCH, COPY  SL DX
       STX   RET
       LDA I (CPLR           % L[S IN 
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74        % RUMS#
       STA I (RSAVE          % SPARAS
       STA I (XSAVE          % NUVARANDE RUM (SPARAS TILL EV BUREN SPELARE)
       SAT   0
       JPL I (RDROM          % RDROM
       STZ I (PBLK+75        % STATUS = VAKEN
       LDA I (PBLK+121       % NIV]
       AAA   -1              % - 1
       SHA   ZIN SHR 1       % / 2
       STA I (PBLK+117       % (NIV] - 1) / 2    TILL ERFNAMNEN
       AAA   -6              
       JAN   NOARCH          % INTE [RKEMAGIKER
       SAA   5
       STA I (PBLK+117       % R[TT SIFFRA TILL ERFNAMNEN
       LDA   (ARCHMC         % ARCHMCODE
       STA I (PBLK+127       % ARCHM
NOARCH,LDA I (PBLK+125       % FOOD COUNT
       AAA   -1
       STA I (PBLK+125
       LDX   (PBLK+112       % STYRKA
ZAP1,  LDA   ,X              % KOLLA VIS > 40, IS]FALL = 40 IGEN
       AAA   -50
       JAN   ZAP2
       SAA   50
       STA   ,X
ZAP2,  AAX   1
       COPY  SX DA
       SUB   (PBLK+115
       JAF   ZAP1
       LDA I (PBLK+47
       JAZ   ZAVE            % INGET SISTA TELEPORTRUM, OM N]GOT: NOLLST[LL
       SAT   1
       JPL I (RDROM
       LDA I (RBLK+366       % ANTAL/R[KNARE
       AND   (177400         % ANTAL
       COPY  SA DX
       SHA   ZIN SHR 10
       RADD  SX DA
       STA I (RBLK+366       % R[KNARE ETTST[LLD
       LDA I (PBLK+47
       JPL I (WTROM
       STZ I (PBLK+47
       JMP   ZAVE
&
ZAVE,  LDA I (CPLR           % SKRIV TILLBAKA SPELAREN
       JPL I (WTPLR          %
       LDA I (PBLK+74        % L[S NUVARANDE RUM
       SAT   1
       JPL I (RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       STA I (ANTAL
       LDX   (RBLK+325       % SPELARBUFF
G1,    LDA   ,X              % \KA X TILLS NUV SPELARE FUNNEN
                             % ELLER SLUT SPELARE (SPELAREN KAN VARA BUREN)
       JAZ   GNXT
       AND   (377
       SUB I (CPLR
       JAZ   G2
       LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
       JAZ   G3              % INGET # FUNNET SOM MATCHAR CPLR
GNXT,  AAX   1
       JMP   G1
G2,    LDA I (PORT           % A = PORT #
       SHA   ZIN 10          % PORT # TILL H\GA BYTEN
       ADD I (CPLR           % A = A + CPLR
       STA   ,X              % SPARA A MED PORT #
G3,    LDA I (PBLK+74        % SKRIV TILLBAKA RUMMET
       JPL I (WTROM
       LDA I (PBLK+76        % OM <> 0, NUMMER P] BUREN SPELARE
       JAZ   O1              % B[R INGEN
       STA I (ZSAVE          % BUREN SPELARE
       SAT   1               % L[S IN BUREN SPELARE OCH [NDRA RUMS#
       JPL I (RDPLR          % RDPLR
       LDA I (XSAVE          % CPLR ROOM#
       STA I (PBLK+74        % BUREN SPELARES RUM = CPLR ROOM#
       LDA I (ZSAVE          % SPARA BUREN SPELARE
       JPL I (WTPLR          % L[S IN CPLRBLOCK IGEN
       LDA I (CPLR           % EIN AUSCHNITZELIZE BUG!
       SAT   0
       JPL I (RDPLR          % RDPLR
O1,    LDA I (PBLK+125       % MAT COUNT
       JAP   OZ              % ENERGI KVAR
       LDX   (T1             % DU B\R [TA OM ETT TAG
       MON   32
       LDA I (PBLK+125       % MAT COUNT
       AAA   4               % + 4
       STA I (QSAVE          % SPARA
OZ,    JAP   OZ1             % ENERGI NOG F\R ATT INTE SV[LTA
       LDX   (T2             % DU SV[LTER
       MON   32
       LDA I (PBLK+74        % TILL RHAPP, CPLR SV[LTER!
       COPY  SA DD
       SAA   12              % ZZ SV[LTER
       JPL I (RHAPP
       LDA I (QSAVE          % ENERGI (MAT COUNT), KOLLA IHJ[LSVULTEN
       AAA   6               % + 6
OZ1,   JAP   O2              % INTE SVULTIT IHJ[L
       LDA I (CPLR
       AAA   -1
       JAZ   O2              % GURRE SV[LTER INTE IHJ[L...
       LDX   (T3             % DU HAR SVULTIT IHJ[L...
       SAA   0               % [RKEFIENDE=0
       JMP I (QQ             % TILL D\-RUTIN
&
DAM,   0
O2,    LDA I (PBLK+50        % HPKOLL
       AAA   -1
       JAP   LLL1            % LEVER FORTFARANDE
       LDX   (T6             % D\TT AV SKADOR UNDER STRID...
       LDA I (PBLK+123       % KILLER #
       JMP I (QQ
LLL1,  LDA I (CPLR           % KOLLA LEVEL MADE
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDF I (PBLK+52        % EXP
       FAD   (1
       STF I (PBLK+52
       LDA I (CPLR
       JPL I (WTPLR
       LDF I (PBLK+52        % EXP
       FSB I (PBLK+55        % DRA FR]N N[STA LVL
       COPY  ST DA           % SIGN + EXP -> A
       JAN   L99             % NEG
       LDX   (TUPP           % DU GICK UPP EN NIV].
       MON   32
       SAA   7
       JPL I (AHAPP
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       MIN I (PBLK+112       % ST
       MIN I (PBLK+113       % IQ
       MIN I (PBLK+114       % VS
       MIN I (PBLK+121       % NIV]
       JMP   HOPP
&
HOPP,  LDF   (0
       STF I (PBLK+52
       LDF I (PBLK+55
       FAD I (PBLK+55
       STF I (PBLK+55        % NEXT LVL
       MON   11              % TIME
       COPY  SD DX
       REXO  SX DA
       AND   (7
       AAA   4               % 4-11
       STA   DAM
       LDA I (PBLK+50        % HP
       ADD   DAM
       STA I (PBLK+50
       LDA I (PBLK+51        % HPSTAT
       ADD   DAM
       STA I (PBLK+51
       LDA I (CPLR           % SPARA
       JPL I (WTPLR          %
L99,
ENDD,  LDA I (RET
       COPY  SA DP
&
PAR,   (200; (0
PADR,  0
QQ,    MON   32              % ZZ KOLAR AV DIVERSE ANLEDNINGAR
                             % FIXA NOLLST[LLNING AV MAG NO I LISTAN
       STA I (QSAVE          % [RKEFIENDE
       LDA I (CPLR           % D\INGEN
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74        % RUM
       SAT   1
       JPL I (RDROM          % RDROM
       SAA   2               % STATUS=2
       STA I (PBLK+75
       LDA I (QSAVE          % KILLER (0 OM SVULTIT IHJ[L)
       STA I (PBLK+122       % [RKEFIENDE
       LDA I (PBLK+100       % GULDMYNT...
       STZ I (PBLK+100       % = 0
       ADD I (RBLK+254       % ..TILL RUMMET
       STA I (RBLK+254
       LDA I (PBLK+101       % MATPAKET...
       STZ I (PBLK+101
       ADD I (RBLK+255       % ..TILL RUMMET
       STA I (RBLK+255
       LDA I (PBLK+103       % OCH SMARAGDER...
       STZ I (PBLK+103
       ADD I (RBLK+257       % ..TILL RUMMET F\RST]SS, VAD TRODDE DU?
       STA I (RBLK+257
       LDA I (PBLK+76        % BUREN SPELARE
       JAZ   OP6             % B[R INGEN
       STZ I (PBLK+76        % NOLLST[LL
       COPY  SA DT           % T = BUREN SPELARE
       JPL I (ADDPL          % L[GG TILL I RUMMET
OP6,   LDA I (PBLK+130       % ANTAL PRYLAR BURNA
       JAZ   OP1             % CPLR B[R INGA PRYLAR
       STA I (ANTAL          % ANTAL PRYLAR
       LDA   (RBLK+265       % PRYLBUFF, RUM
       LDX   (PBLK+134       % PRYLBUFF, PLAYER
       COPY  SA DB           % PRYLBUFF, RUM
       STX   PADR            % SPARAS (PRYLBUFF SPELARE)
OP3,   LDX   PADR            % PRYLBUFF SPELARE
       LDA   ,X              % PLPRYL
       JAZ   NXT             % INGEN PRYL
       JPL I (RITEM          % L[S IN PRYLEN F\R ATT KOLLA TYPEN
       LDA I (IBLK+60        % PRYLTYP
       JAZ   OP4             % KAN INTE VARA UTRUSTAD, DEN DROPPAR VI
       ADD   (PBLK+61        % A PEKAR P] UTRUSTNINGSLISTAN
       COPY  SA DX           % X            -''-
       LDA   ,X              % ADDRESS P] UTRUSTAD PRYL OM N]GON
       JAZ   OP4             % TYPEN EJ UTRUSTAD, TAPPA
       SUB   PADR            % ADR I PRYLLISTAN
       JAZ   NEXT            % UTRUSTAD
OP4,   LDA   ,B              % RPRYL
       JAZ   OP5             % HITTA EN LUCKA
       AAB   1               % INGEN LUCKA, \KA PEKARE I RUMPRYLBUFF
       JMP   OP4             % FORTS[TT LETA LUCKA
OP5,   LDX   PADR            % ADDRESS I PRYLPLAYERBUFF
       LDA   ,X              % PLPRYL
       STZ   ,X              % NOLLST[LL PRYLEN, DEN TAPPAR VI JU!
       STA   ,B              % TILL RUM
       MIN I (RBLK+260       % \KA ANTAL PRYLAR I RUM MED ETT
       LDA I (PBLK+130       %    -''-     SPELARE
       AAA   -1              % MINSKA
       STA I (PBLK+130
NEXT,  LDA I (ANTAL          % ANTALET PRYLAR
       AAA   -1
       STA I (ANTAL
NXT,   LDA I (ANTAL          % KOLLA OM SLUT PRYLAR
       MIN   PADR            % \KA PEKARE TILL PRYLPLAYERBUFF
       JAF   OP3             % INTE SLUT PRYLAR I   -''-
OP1,   LDA I (CPLR           % SKRIV TILLBAKA D\ING
       JPL I (WTPLR          %
       LDA I (PBLK+74        % RUM
       COPY  SA DD
       JPL I (WTROM          % WTROM          % SKRIV RUM
       SAA   5
       JPL I (AHAPP          % ZZ D\R
       LDA   (PAR
       MON   123             % RELES
       SAT   1               % L[S IN MAG NO LISTAN, F\R [NDRING
       JPL I (RDATA
       LDA I (PORT           % PORT #
       AAA   -1              % - 1
       SHA   ZIN 1           % * 2
       ADD   (DBLK+10        % A = ADDRESS TILL MAG NO
       COPY  SA DX           % X = A
       STZ   ,X              % NOLLST[LL MAG NO
       STZ   ,X 1
       JPL I (WDATA          % SPARA DBLK
       SAT   1               % XFDCT (XMSG DISCONNECT)
       MON   200             % XMSG CALL
       LDA I (CPLR           % TA BORT PORT # I RUMMET
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+74        % L[S IN RUMMET F\R ATT NOLLST[LLA CPLRS PORT#
       SAT   1
       JPL I (RDROM
       LDT I (CPLR           % TA BORT SPELARE CPLR
       JPL I (REMPL
       LDT I (CPLR           % L[GG TILL SPELARE CPLR
       JPL I (ADDPL
       LDA I (PBLK+74
       JPL I (WTROM
       JMP I (KESO
&
)9END
)CLEAR
)9BEG
)9ENT OPEN
)9LIB OPEN
F1,    '(A-I)BACKUP'
F2,    '(EL4B)COVE-PLRS'
F3,    '(EL4B)COVE-DATA'
F4,    '(EL4B)COVE-MSGS'
F5,    '(EL4B)COVE-ITMS'
FT,    #DA; #TA
OPEN,  LDX   (F1             % OPEN ROOM FILE
       LDA   (FT
       SAT   6
       MON   50
       MON   65
       STA I (RFIL
       COPY  SA DT
       LDA   (400            % BLOCK SIZE = 256 WORDS
       MON   76
       MON   65
       LDX   (F2             % OPEN PLAYER FILE
       LDA   (FT
       SAT   6
       MON   50
       MON   65
       STA I (PFIL
       COPY  SA DT
       LDA   (400            % BLOCK SIZE = 256 WORDS
       MON   76
       MON   65
       LDX   (F3             % OPEN DATA FILE
       LDA   (FT
       SAT   6
       MON   50
       MON   65
       STA I (DFIL
       COPY  SA DT
       LDA   (200            % BLOCK SIZE = 128 WORDS
       MON   76
       MON   65
       LDX   (F4             % OPEN MESSAGE FILE
       LDA   (FT
       SAT   6
       MON   50
       MON   65
       STA I (MFIL
       COPY  SA DT
       LDA   (50             % BLOCK SIZE 40 WORDS (80 BYTES)
       MON   76
       MON   65
       LDX   (F5             % OPEN ITEM FILE
       LDA   (FT
       SAT   6
       MON   50
       MON   65
       STA I (IFIL
       COPY  SA DT
       LDA   (70             % BLOCK SIZE = 56 WORDS
       MON   76
       MON   65
       EXIT
&
)9END
)CLEAR
)9BEG
)9ENT LOG
)9LIB LOG
T1,    'Spelarens namn?'
T2,    'L|senord ?'
T3,    'Felaktigt namn/l|senord.'
T4,    'V{lkommen, '
T5,    'Nytt namn ?'
T6,    'L|senord ?'
T7,    'Du f}r inte spela p} denna terminal.$'
T8,    'Den spelaren {r d|d.$'
T9,    'Vilken sammanslutning ska spelaren tillh|ra (1/ EL4B, 2/ Klanen, 3/ EL4A)?'
T01,   'Den spelaren {r redan vaken, din ot{cking!$'
T02,   '$$No COVE on this terminal$$$'
T07,   'SKAPA l|senord (har du ingen spelare, kontakta Hedstr|m)?'
T08,   'Skapa nummer (<cr> f|r n{sta)?'
TERR1, 'Det namnet finns redan.'
SK,    'SKAPA'
SLF,   '!$'
ANTAL, 0
PLR,   0
RET,   0
LOG,   COPY  SL DX
       STX   RET
       SAA   1               % PL#1 = [RKEMAGIKER
       SAT   1
       JPL I (RDPLR
       LDA   (ARCHMC
       STA I (PBLK+127
       SAA   1
       JPL I (WTPLR
       LDA I (PBLK+120       % PASSWORD
       STA I (XSAVE          % XSAVE INNEH]LLER SPELARE 1:S PASSWORD
L4,    LDT   (SPILL          % KOLLA OM ETT ARG FINNS
       SAX   0
       LBYT
       AAA   -47
       JAF   FR              % JOMEN, ARG FINNS
INPQ,  LDX   (T1             % V[LJ SPELARE?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT          % SPELARENS NAMN
       JXZ   END
FR,    LDA   (SPILL          % INSLAGET NAMN
       LDX   (SK             % "SKAPA"
       JPL I (CMPST          % J[MF\R
       JAZ   QQW             % INTE LIKA
       JMP I (SKAPA          % SKAPA NY SPELARE
QQW,   SAT   0
       JPL I (RDATA          % RDATA
       SAA   1               % B\RJA LETA FR]N SPELARE 1
       STA I (PLR
CNAME, LDA I (PLR            % S\KT SPELAR#
       MPY   (20
       ADD   (100000
       COPY  SA DX
       LDA   (SPILL
       JPL I (CMPST          % KOLLA OM NAMN = INSLAGEN STR[NG
       JAF   CPSW            % JO, LIKA
       MIN I (PLR            % \KA SPELARE
       LDA I (DBLK           % KOLLA MAX ANTAL SPELARE
       SUB I (PLR
       JAP   CNAME           % FLER SPELARE FINNS
ENDR,  LDX   (T3             % SPELAREN FINNS INTE!
       MON   32
END,   LDA I (RET            % TILLBAKA
       COPY  SA DP
&
CPSW,  LDA I (PLR            % FUNNEN SPELARES #
       SAT   0
       JPL I (RDPLR
       LDX   (T2             % SPELARENS L\SENORD?
       MON   32
       JPL I (PSWIN          % L[S L\SENORD
       LDX   (LF             % LINE FEED
       MON   32
       SUB I (PBLK+120       % PSW BYTE
       JAZ   OK              % PASSWORD OK
       ADD I (PBLK+120       % PASSWORD FEL...
       SUB I (XSAVE          % ..KOLLA PLR1 L\SEN
       JAF   ENDR            % OCKS] FEL
OK,    MON   143
       COPY  ST DA
       AAA   -52
       JAZ   BALL
       AAA   -1
       JAF   OK12
BALL,  LDX   (T02
       MON   32
%       JMP I (KESO          %!
OK12,  LDA I (PBLK+75        % STATUS
       JMP   OK11            % 1 = S\MNIG
%!     ^^^ SKA VA JAF!
       LDX   (T01            % REDAN VAKEN, NYLLE!
       MON   32
       JMP I (INPQ
OK11,  LDX   (T4             % V[LKOMMEN,
       MON   32
       LDX   (PBLK           % NAMN
       MON   32
       LDX   (SLF            % !
       MON   32
       LDA I (PBLK+132       % TERMINAL SKYDD
       JAZ   O1              % INGET SKYDD
       MON   143             % H[MTA TERMINALNUMMER
       COPY  ST DA           % TERMINAL #
       SUB I (PBLK+132       % - SKYDD
       JAZ   O1              % OK, SAMMA SOM SKYDDET
       LDX   (T7             % FEL!
       MON   32
       JMP I (INPQ
&
TUNA,  '$The Cove is unavailable$'
O1,    LDA I (PLR
       AAA   -1
       JAZ   O2
       SAT   0               % HUVVA, AV KOLL
       JPL I (RDATA
       LDA I (DBLK+4
       JAF   QO1
       LDX   (TUNA           % UNAV
       MON   32
       JMP I (KESO
QO1,   LDA I (PBLK+75        % STATUS
       AAA   -2              % KOLLA D\D
       JAF   O2              % INTE D\D
       LDX   (T8             % D\D
       MON   32
       JMP I (INPQ
&
O2,    LDA I (PLR            % SPELARE
       STA I (CPLR           % TILL NUV SPELARE
       SAT   1
       JPL I (RDPLR          % RDPLR
       STZ I (PBLK+75        % STATUS = 0
       STZ I (PBLK+116       % TROLLKRAFT
       LDA I (PBLK+115       % KLASS
       JAZ   DUE             % SIMPLETON - INGEN TROLLKRAFT
       AAA   -1              % =KRIGARE, INGEN TROLLKRAFT
       JAZ   DUE
       AAA   -3              % =TJUV
       JAZ   DUE
       AAA   2               % =MAGIKER
       JAF   TK1
       LDA I (PBLK+113       % IQ
       JMP   DIV4
TK1,   AAA   -1              % =PR[ST
       JAF   TK2
       LDA I (PBLK+114       % VS
       JMP   DIV4
TK2,   AAA   -2              % =TROLLKARL
       JAF   TK3
       LDA I (PBLK+113       % IQ
       ADD I (PBLK+114       % VS
DIV4,  SHA   ZIN SHR 2
       JMP   DUE1
TK3,   LDA I (PBLK+113       % =PALADIN
       ADD I (PBLK+114
       SHA   ZIN SHR 1
DUE1,  MPY I (PBLK+121       % * NIV]
       STA I (PBLK+116       % TROLLKRAFT
DUE,   MON   143
       LDA   (SPILL
       STX I (QSAVE
       MON   214
       JMP   LL1
       LDA   (XPBLK
       LDX   (SPILL
       MON   44
       JMP   LL1
       LDA I (QSAVE
       AND   (377
       STA I (PBLK+104
       LDA I (XPBLK+11
       STA I (PBLK+105
                             % KOLLA UTRUSTADE PRYLAR (GET&DROP?)
LL1,   LDA I (CPLR
       JPL I (WTPLR          %
       JPL I (XINIT          % INIT XMSG, OPEN AND NAME PORT
                             % MAGIC NO IN DBLK+8+(PORT-1)*2
       SAT   27              % XFP2M
       LDA I (PORT           % PORT #, GET MAGIC NO
       MON   200             % XMSG CALL
       STD   MAGNO           % STOPPA IN MAG NO I DBLK P] R[TT ST[LLE
       COPY  ST DA           % KOLLA XMSG ERROR
       JAN   CRASH           % ERROR
       SAT   1
       JPL I (RDATA          % L[S MAGNOLISTAN
       LDA I (PORT           % A = (PORT - 1) * 2
       AAA   -1              %
       SHA   ZIN 1           %
       ADD   (DBLK+10        % A PEKAR P] R[TT ADDRESS I MAGNOLISTAN
       COPY  SA DX           % X = A
       LDD   MAGNO           % H[MTA TILLBAKA MAG NO
       STD   ,X              % SPARA I LISTAN
       JPL I (WDATA          % SPARA MAGNOLISTAN
       SAA   3               % CPLR VAKNAR
       JPL I (AHAPP
OEND,  JMP I (END
MAGNO, 0; 0
CRASH, SAT   12
       MON   35
       JMP I (KESO
&
QWPL,  0
SKAPA, LDX   (T07            % SKAPA L\SENORD?
       MON   32
       JPL I (PSWIN
       LDX   (LF
       MON   32
       AAA   -1
       JAZ   OEND            % INGET PSW
       SUB I (XSAVE          % PSW SPELARE #1
       AAA   1
       JAF   SKAPA           % FEL PSW
       LDX   (T08            % SKAPA SPELARE #
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (DBLK
       JAF   NEWW            % SKAPA ETT SPECIELLT #
       SAT   1
       JPL I (RDATA          % RDATA
       MIN I (DBLK
       JPL I (WDATA          % WDATA
NEWW,  LDA I (DBLK
       STA I (TSAVE          % SPELAR# SOM MAN SKAPAR
       LDX   (T5             % NYTT NAMN?
       MON   32
       LDT   (SPILL
       LDX   (T5
       JPL I (INPUT          
       SAT   0
       JPL I (RDATA          % RDATA
       SAA   1
       STA I (QWPL           % KOLLA OM NAMNET REDAN FINNS
L4L,   LDA I (QWPL           % SPELAREN MAN KOLLAR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA   (PBLK
       LDX   (SPILL
       JPL I (CMPST
       JAZ   NAEXT           % NAMNEN EJ LIKA
       LDX   (TERR1          % NAMNET FINNS REDAN
       MON   32
       JMP   NEWW
NAEXT, MIN I (QWPL
       LDA I (QWPL
       SUB I (DBLK
       AAA   1
       JAF   L4L             % FLER NAMN ATT KOLLA
       LDA   (SPILL          % FLYTTA NAMNET...
       LDX   (PBLK
       LDT   (20             % FLYTTA 16 ORD - ETT NAMN MAX 31 TECKEN + '
       JPL I (LDIR           % LDIR
       LDX   (PBLK+50        % RENSA PBLK
       LDA   (330
L3L,   STZ   ,X
       AAX   1
       AAA   -1
       JAF   L3L
       LDX   (T6             % L\SENORD?
       MON   32
       JPL I (PSWIN
       STA I (PBLK+120       % SPARA L\SENORD
       LDX   (LF
       MON   32
SAMM,  LDX   (T9             % SAMMANSLUTNING?
       MON   32
       SAT   12
       JPL I (INBAZ          % L[S SAMMANSLUTNING (1 ELLER 2)
       JAZ   SAMM
       AAA   -4              % MAX 3
       JAP   SAMM            % > 3
       AAA   4
       STA I (PBLK+60        % SAMMANSLUTNING
       SAA   1               % STATUS = S\MING
       STA I (PBLK+75        % STATUS
       STA I (PBLK+121       % NIV]
       SAA   16              % ALLT 14 FR]N B\RJAN, MIN 3 MAX 40
       STA I (PBLK+112       % STYRKA
       STA I (PBLK+113       % IQ
       STA I (PBLK+114       % VISDOM
       LDF   (1000           % ERFARENHET N[STA NIV]
       STF I (PBLK+55
       SAA   20              % HP & HPSTAT = 16
       STA I (PBLK+50        % HP
       STA I (PBLK+51        % HPSTAT
       STA I (PBLK+125       % MAT COUNT
       LDA   (764            % 500 GULD
       STA I (PBLK+100
       SAA   2
       STA I (PBLK+101       % 2 MATPAKET
       SAA   3               % RUM
       STA I (PBLK+74
       LDA I (TSAVE          % SPELAR#
       JPL I (WTPLR          %
       JMP I (END
&
)9END
)CLEAR
)CLEAR
)9BEG
)9ENT MOVE
)9LIB MOVE
T1,    '(Dunk!) R{tt in i en v{gg...'
T2,    'Du beh|ver '
T3,    ' f|r att g} dit}t!'
ITEM,  0
RET,   0
MOVE,  COPY  SL DX
       STX   RET
       LDA I (RSAVE
       SAT   0
       JPL I (RDROM
       LDX I (QSAVE
       LDA   ,X
       JAF   PRYL
       LDX   (T1
       MON   32
END,   LDA I (RET
       COPY  SA DP
&
ANTAL, 0
PRYL,  LDA   ,X 1
       JAZ   MOV
       STA   ITEM
       LDA I (CPLR
       AAA   -1
       JAZ   MOV
       AAA   1
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+130
       STA I (ANTAL
       LDX   (PBLK+134
LP,    LDA   ,X
       JAZ   NEXT
       SUB   ITEM
       JAZ   MOV
       LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
NEXT,  AAX   1
       LDA I (ANTAL
       JAF   LP
       LDX I (QSAVE
       LDA   ,X 1            % PRYL #
       JPL I (RITEM
       LDX   (T2             % DU BEH\VER
       MON   32
       LDX   (IBLK+10        % L]NGNAMN
       MON   32
       LDX   (T3             % F\R ATT G] DIT]T
       MON   32
       JMP I (END
&
MOV,   LDA I (PBLK+74
       COPY  SA DD
       SAA   0               % G]R
       LDT I (TSAVE          % DIR
       JPL I (RHAPP
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74        % GAMLA RUM
       STA I (PBLK+111       % SPARA DET TILL BUTIKEN
       LDX I (QSAVE
       LDA   ,X
       STA I (PBLK+74
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+111
       SAT   1
       JPL I (RDROM          % RDROM
       LDT I (CPLR
       JPL I (REMPL
       LDA I (PBLK+111
       COPY  SA DD           % TILL RHAPP
       JPL I (WTROM          % WTROM
       LDA I (PBLK+74        % NYA RUMMET
       SAT   1
       JPL I (RDROM          % RDROM
       LDT I (CPLR
       JPL I (ADDPL
       LDA I (PBLK+74
       COPY  SA DD           % TILL RHAPP NEDAN
       JPL I (WTROM          % WTROM
       SAA   11              % CPLR KOMMER IN I RUMMET
       JPL I (RHAPP
       SAA   0
       LDX I (RET
       COPY  SX DP
&
)9END
)CLEAR
)9BEG
)9ENT QUIT
)9LIB QUIT
P1,    (200; (0
P2,    (200; (1
P3,    (201; (0
T1,    'Ok.'
RET,   0
QUIT,  COPY  SL DX
       STX   RET
       LDX   (T1             % OK
       MON   32
       LDA   (MON0
       MON   300; 0
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       MIN I (PBLK+75        % STATUS = S\MNIG F]R MAN HOPPAS...
       LDA I (PBLK+76
       STA I (QSAVE
       STZ I (PBLK+76
       LDA I (CPLR
       JPL I (WTPLR          %
       SAA   4
       JPL I (AHAPP
       LDA I (PBLK+74
       COPY  SA DD
       SAT   1
       JPL I (RDROM
                             % NOLLST[LL PORT#
       LDT I (CPLR
       JPL I (REMPL
       LDT I (CPLR
       JPL I (ADDPL
       LDA I (PBLK+74        % SPARA RUM
       JPL I (WTROM
       LDA I (QSAVE
       JAZ   END             % B[R INGEN
       COPY  SA DT
       SAA   16              % SL[PPER SPELARE D1 (T)
       JPL I (RHAPP
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM
       LDT I (QSAVE
       JPL I (ADDPL
       LDA I (PBLK+74
       JPL I (WTROM
END,   SAT   1               % NOLLST[LL MAGNO
       JPL I (RDATA
       LDA I (PORT
       AAA   -1
       SHA   ZIN 1
       ADD   (DBLK+10
       COPY  SA DX
       STZ   ,X              % NOLLST[LL
       STZ   ,X 1
       JPL I (WDATA
       SAT   1               % XFDCT
       MON   200
       LDA   (P1
       MON   123
       LDA   (P2
       MON   123
       LDA   (P3
       MON   123
       LDA   RET
       COPY  SA DP
&
MON0,  JMP I (KESO
&
)9END
)CLEAR
)9BEG
)9ENT CHR
)9LIB CHR
T1,    '[ndra v{rde?'
T2,    'Nuvarande v{rde: '
T3,    '  -> V{rde?'
T4,    '[ndra v{rde f|r rum (<cr> f|r nuvarande rum)?'
VALUE, 0
NUM,   0
RET,   0
CHR,   COPY  SL DX
       STX I (RET
       LDA I (PBLK+74        % RUM
       STA I (QSAVE
       LDX   (T4
       MON   32
       SAT   12
       JPL I (INBAZ
       JXZ   LP
       STA I (QSAVE
LP,    LDX   (T1             % [NDRA V[RDE #?
       MON   32
       SAT   12
       JPL I (INBAZ
       JAZ   END
       ADD   (RBLK
       STA   VALUE
       LDA I (QSAVE
       SAT   0
       JPL I (RDROM          % RDROM
       LDX   (T2
       MON   32
       LDX   VALUE
       LDA   ,X
       SAT   12
       MON   35
       LDX   (T3             % V[RDE?
       MON   32
       SAT   12
       JPL I (INBAZ
       STA   NUM
       LDA I (QSAVE
       SAT   1
       JPL I (RDROM          % RDROM
       LDX   VALUE
       LDA   NUM
       STA   ,X
       LDA I (QSAVE
       JPL I (WTROM          % WTROM
       JMP   LP
END,   LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT HKOLL
)9LIB HKOLL
T1,    ' g}r '
T2,    ' vaknar. '
T3,    ' somnar. '
T4,    ' d|r. '
T5,    ' {ter. '
T6,    ' gick upp en niv}. '
T7,    ' s{ger: <'
T8,    ' tar '
T9,    ' sl{pper '
T01,   ' kommer in i rummet. '
T02,   '> '
T03,   ' sv{lter. '
T04,   ' anfaller '
T05,   ' och orsakar '
T06,   ' skada. '
T07,   ' m|rdades av '
T08,   ' plockar upp '
T09,   ' vilar. '
T10,   ' vaknar upp ur vilan. '
T11,   'LOGOUT LOGOUT LOGOUT LOGOUT'
T12,   20015; '*** ABORTED BY GURNEY HALLECK ***$'
T13,   ' s|ker '
T14,   ' utrustar sig med '
T15,   ' har bytt klass till '
T16,   ' f|rs|ker r}na '
T17,   ' och missar... '
T18,   ' av '
T19,   ' v{ver en f|rtrollning f|r att teleportera '
T20,   ' teleporterar '
T21,   ' helar '
T22,   ' kastar en blixt p} '
T23,   ' ser sig omkring. '
T24,   ' inspekterar sin utrustning. '
T25,   ' blir lagl|s...'
T26,   ' skriker: <'
TM4,   'guldmynt'
TM3,   'matpaket'
TM1,   'smaragder'
EQU,   '. '
C1,    'Krigare. '
C2,    'Magiker. '
C3,    'Pr{st. '
C4,    'Tjuv. '
C5,    'Trollkarl. '
C6,    'Paladin. '
TN,    'norrut. '
TS,    's|derut. '
TE,    '|sterut. '
TW,    'v{sterut. '
TU,    'upp}t. '
TD,    'ned}t. '
TQ,    'bakl{nges... '
CT,    C1; C2; C3; C4; C5; C6
       TQ
TDIR,  TN; TS; TE; TW; TU; TD
RET,   0
CRASH, SAT   12
       MON   35
       JMP I (KESO
HKOLL, COPY  SL DX           % SPARA RET ADDR
       STX   RET
       STZ   FLAG            % FLAGGA, 0 - F\RSTA HAPPEN
XFPST, LDT   (70016          % XFPST BONE XFWAK
                             % KOLLA PORT STATUS OM ETT MESSAGE FINNS ATT L[SA
       LDA I (PORT
       MON   200
       COPY  ST DA
       JAN   CRASH
       JAZ   END             % NO MESSAGE IN BUFFER
XFRCV, LDT   (100015         % XFRCV BONE XFWTF
                             % RECIEVE MESSAGE
       LDA I (PORT
       MON   200
       COPY  ST DA
       JAN   CRASH
       COPY  SD DA           % MESAD
       STA I (MESAD
READ,  SAT   6               % XFREA
                             % READ MESSAGE BUFFER
       SAA   10              % L[S 8 BYTES
       COPY  SA DD
       LDA   (HBUF
       SAX   0
       MON   200
       COPY  ST DA
       JAN   CRASH
XFREL, LDA I (MESAD
                             % RELEASE MESSAGE SPACE
       SAT   3               % XFREL
       MON   200
       COPY  ST DA
       JAN   CRASH
       JMP   HAPPS           % SKRIV UT HAPPEN
END,   LDA   RET
       COPY  SA DP
&
HBUF,  0; 0; 0; 0
AJT,   0
RTRT,  0
FLAG,  0
ITA,   COPY  SL DX
       STX   RTRT
       JAP   ZZZ
       AAA   1
       JAF   O2
       LDX   (TM1
       JMP   QZ
O2,    AAA   2
       JAF   O3
       LDX   (TM3
       JMP   QZ
O3,    LDX   (TM4
QZ,    MON   32
       LDA   RTRT
       COPY  SA DP
ZZZ,   JPL I (RITEM          % RITEM
       LDX   (IBLK+10        % L]NGNAMN
       JMP   QZ
&
BEEP,  3447
CR,    6447
ANTAL, 0
BFLAG, 0
ADDDR, 0
ADDR,  0
RAD,   0
HAPPS, LDA I (CPLR           % L[S IN CPLRBLK F\R BEEP FLAG
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+124       % FLAGS
       AND   (2              % BEEP FLAG
       STA   BFLAG
       LDX   (CR             % CHR$(13) + '
       MON   32
       JPL I (CLINE          % ON LW`S REQUEST
       SAT   0
       JPL I (RDATA
LP,    LDX   (HBUF
       LDA   ,X 1            % PLAYER #, HAPPANDE SPELARE
       JAZ   NXT             % OM 0, SKIPPA
       SUB I (CPLR
       JAZ   NXT             % SKIPPA OM DET [R DU SJ[LV(?) SOM HAPPAR
       LDA   ,X 1            % SPELAR #
       SUB I (DBLK           % - ANTAL SPELARE
       AAA   -1
       JAP   NXT             % HAPPANDE SPELAR# > [N ANTAL SPELARE, SKIPPA
       LDA   ,X 1            % HAPPANDE SPELAR#
       SAT   0
       JPL I (RDPLR          % L[S IN HAPPANDE SPELAREN
       LDX   (HBUF
       LDA   ,X 1
       MPY   (20
       ADD   (100000
       STA I (ADDDR          % ADDR
       COPY  SA DX
       LDA   (PBLK
       JPL I (MOVST
       LDX I (ADDDR
       LDA I (PBLK+60        % SAMMANSLUTNING
       SHA   ZIN 10          % * 256
       ADD I (PBLK+75        % + STATUS
       STA   ,X 17           % SPARAS
       LDX   (PBLK           % OCH SKRIV UT NAMNET
       MON   32
       LDA   BFLAG
       JAZ   NOBEP
       LDX   (BEEP
       MON   32
NOBEP, LDX   (HBUF
       LDA   ,X              % HAPP #
       JAF   TA
       LDA   ,X 2            % DIR CODE, 1-N OSV...
       LDX   (T1             % G]R
       MON   32
       ADD   (TDIR
       AAA   -1
       COPY  SA DX
       LDX   ,X              % DIR TXT
       MON   32
       JMP   NXT
TA,    AAA   -1
       JAF   DROP
       LDX   (T8
QQ,    MON   32
       LDX   (HBUF
       LDA   ,X 2
       JPL   ITA
       LDX   (EQU
       MON   32
       JMP   NXT
DROP,  AAA   -1
       JAF   VAKN
       LDX   (T9
       JMP   QQ
VAKN,  AAA   -1
       JAF   SOMN
       LDX   (T2             % VAKNAR
       MON   32
       JMP   NXT
SOMN,  AAA   -1
       JAF   DIES
       LDX   (T3
       MON   32
NXT,   LDX   (LF
       MON   32
       JMP I (XFPST
&
DIES,  AAA   -1
       JAF   EATS
       LDX   (T4
MOTNXT,MON   32
       JMP   NXT
EATS,  AAA   -1
       JAF   UEN
       LDX   (T5
       JMP I (MOTNXT
UEN,   AAA   -1
       JAF   MSG
       LDX   (T6
       JMP I (MOTNXT
MSG,   AAA   -1
       JAF   MER
       LDX   (HBUF
       LDA   ,X 3            % 0-S[GER/1-SKRIKER
       LDX   (T7             % S[GER: <
       JAZ   PRSAY
       LDX   (T26            % SKRIKER: <
PRSAY, MON   32
       LDX   (HBUF
       LDA   ,X 2
       JPL I (RLINE          % RLINE
       LDX   (MBLK
       MON   32
       LDX   (T02
       JMP I (MOTNXT
MER,   AAA   -1
       JAF   SVALT
       LDX   (T01
       JMP I (MOTNXT
SVALT, AAA   -1
       JAF   ANF
       LDX   (T03
       JMP I (MOTNXT
ANF,   AAA   -1              % D\DA
       JAF   KILLS
       LDX   (T04            % ANFALLER
       MON   32
       LDX   (HBUF
DAMAG, LDA   ,X 2            % ANFALLEN SPELARES #
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDX   (PBLK           % NAMN P] ANFALLEN SPELARE
       MON   32
       LDX   (HBUF
       LDA   ,X 3            % SKADA
       JAF   HIT             % SKADA <> 0, ALLTS] EN TR[FF
       LDX   (T17            % OCH MISSAR...
       JMP I (MOTNXT
HIT,   LDX   (T05            % OCH ORSAKAR
       SAT   12
       MON   32
       MON   35
       LDX   (T06            % PO[NGS SKADA
       MON   32
       LDX   (HBUF
       LDA   ,X 2            % ANFALLEN SPELARE
       SUB I (CPLR           % CPLR?
       JAF   TNXT            % INTE CPLR ANFALLEN
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+50
       AAA   -1
       JAP   MINSK
       JMP   TNXT
MINSK, LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDX   (HBUF
       LDA   ,X 1
       STA I (PBLK+123       % SIST ANFALLANDE SPELARE
       LDA I (PBLK+50
       LDX   (HBUF
       SUB   ,X 3            % SKADA
       STA I (PBLK+50
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+50        % HP
       AAA   -1
       JAP   TNXT            % LEVER [NNU
       JMP I (ZUPRA          % FIXA ERFARENHETSBYTE
TNXT,  JMP I (NXT
KILLS, AAA   -1
       JAF   GETSP
       LDX   (T07
QQ1,   MON   32
       LDX   (HBUF
       LDA   ,X 2
QQ2,   SAT   0
       JPL I (RDPLR          % RDPLR
       LDX   (PBLK
       MON   32
       LDX   (EQU
       JMP I (MOTNXT
GETSP, AAA   -1
       JAF   DROPSP
       LDX   (T08
       JMP   QQ1
DROPSP,AAA   -1
       JAF   VIL
       LDX   (T9
       JMP   QQ1
&
VIL,   AAA   -1
       JAF   OVIL
       LDX   (T09
       JMP I (MOTNXT
OVIL,  AAA   -1
       JAF   OUTLOG
       LDX   (T10
       JMP I (MOTNXT
OUTLOG,AAA   -1
       JAF   UTR
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       SAA   1               % STATUS=S\MNIG
       STA I (PBLK+75
       LDA I (CPLR
       JPL I (WTPLR          %
       LDX   (T12
       MON   32
       LDA   (T11            % LOGOUT
       MON   70              % CMD
       JMP I (KESO
UTR,   AAA   -1
       JAF   SOEKR
       LDX   (T14
       JMP I (QQ
SOEKR, AAA   -1
       JAF   BYTER
       LDX   (T13
       JMP I (QQ1
BYTER, AAA   -1
       JAF   ROB
       LDX   (T15            % [R NU
       MON   32
       LDX   (HBUF
       LDA   ,X 2
       ADD   (CT
       AAA   -1
       COPY  SA DX
       LDX   ,X
       JMP I (MOTNXT         % MOTNXT, MON 32
ROB,   AAA   -1
       JAF   ROBS
       LDX   (T16            % F\RS\KER R]NA
       JMP I (QQ1
ROBS,  AAA   -1
       JAF   TELEP
       LDX   (T8             % TAR
       MON   32
       LDX   (HBUF
       LDA   ,X 2            % PRYL
       JPL I (RITEM
       LDX   (IBLK+10        % L]NGNAMN
       MON   32
       LDX   (T18            % AV
       MON   32
       LDX   (HBUF
       LDA   ,X 3            % SPELARE
       JMP I (QQ2
TELEP, AAA   -1
       JAF   TLP
       LDX   (T19
       JMP I (QQ1
TLP,   AAA   -1
       JAF   HELAR
       LDX   (T20
       JMP I (QQ1
HELAR, AAA   -1
       JAF   BLIXT
       LDX   (T21
       JMP I (QQ1
BLIXT, AAA   -1
       JAF   LOOKS
       LDX   (T22            % KASTAR EN BLIXT P]
       MON   32
       JMP I (DAMAG
LOOKS, AAA   -1
       JAF   INSP
       LDX   (T23
       JMP I (MOTNXT
INSP,  AAA   -1
       JAF   LLOE
       LDX   (T24
       JMP I (MOTNXT
LLOE,  AAA   -1
       JAF   LLOE
       LDX   (T25
       JMP I (MOTNXT
&
KILLR, 0                     % ,X 2
ZUPRA, LDA I (CPLR           % KILLR D\DAR CPLR, FIXA FIXA FIXA...
       SAT   0
       JPL I (RDPLR
       LDA   (PBLK
       LDX   (XPBLK
       LDT   (400
       JPL I (LDIR           % FLYTTA CPLRBLK TILL XPBLK F\R V[RDEN
       LDX   (HBUF           % ,X 2 -> KILLR
       LDA   ,X 1
       STA   KILLR
                             % L[S IN KILLR OCH FIXA ANTAL D\DADE FIENDER/LL\SA
                             % OCH \KA ERFARENHETEN
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (XPBLK+60       % DEN D\DADES SAMMANSLUTNING
       JAZ   KLOES           % LAGL\S
       MIN I (PBLK+61        % D\DADE FIENDER
       JMP   Z1
KLOES, MIN I (PBLK+102       % D\DADE LAGL\SA
Z1,    LDF I (XPBLK+52       % OFFRETS EXP
       FAD I (PBLK+52        % + M\RDARENS EXP
       STF I (PBLK+52        % TILL -""- EXP
       LDA   KILLR           % SPARA CPLR
       JPL I (WTPLR          %
       LDA I (CPLR           % L[S IN OFFRET OCH NOLLST[LL EXP
                             % OCH STATUS=D\D
       SAT   1
       JPL I (RDPLR
       LDF   (0
       STF I (PBLK+52        % EXP
       SAA   2
       STA I (PBLK+75        % STATUS=D\D
       LDA I (CPLR
       JPL I (WTPLR          %
       LDT   KILLR
       SAA   14              % CPLR M\RDADES AV KILLR
       JPL I (AHAPP
       JMP I (XFPST          % N[STA HAPP
&
)9END
)CLEAR
)9BEG
)9ENT STAT
)9LIB STAT
T2,    '  Guld: '
T3,    '  Matpaket: '
T4,    '$D|dade fiender: '
T5,    '$Smaragder: '
T7,    '$Hp-status: '
T8,    ', niv} '
T9,    '/'
T01,   '  Erfarenhet: '
T02,   '$D|dade lagl|sa: '
T03,   '$[rkefiende: '
T04,   ' inom '
T05,   'the Inner Circle'
T06,   'Klanen'
T4A,   'Kyokoshin' 
T07,   ' lagl|s'
T08,   '  Ruststyrka: '
T09,   '  Styrka: '
T10,   '  Iq: '
T11,   '  Visdom: '
T12,   ' simpleton'
T13,   ' Krigare'
T14,   ' Magiker'
T15,   ' Pr{st'
T16,   '  Trollkraft: '
T17,   ', '
T18,   'Nyb|rjare'
T19,   'L{rling'
T20,   'Yrkesman'            % BYT TILL ETT B[TTRE, VA?
T21,   'Proffs'
T22,   'Veteran'
T23,   '[rkeMagiker'         % "\VERM[NNISKA"?
T24,   ' Tjuv'
T25,   ' Trollkarl'
T26,   ' Paladin'
CT,    T12; T13; T14; T15; T24; T25; T26
CT2,   T18; T19; T20; T21; T22; T23
CT3,   0; T05; T06; T4A
RET,   0
STAT,  COPY  SL DX
       STX   RET
       LDX   (PBLK           % NAMN
       MON   32
       LDX   (T8             % NIV]:
       MON   32
       LDA I (PBLK+121
       COPY  DD
       SAX   2
       JPL I (PRIDE
       LDA I (PBLK+60
       JAF   LOES
       LDX   (T07            % LAGL\S
       MON   32
LOES,  LDA I (PBLK+115       % KLASS
       ADD   (CT
       COPY  SA DX
       LDX   ,X
       MON   32
       LDA I (PBLK+60
       JAZ   LOES2
       LDX   (T04            % SAMMANSLUTNING
       MON   32
       ADD   (CT3
       COPY  SA DX
       LDX   ,X
       MON   32
LOES2, LDX   (T17            % ,_
       MON   32
       LDA I (PBLK+117       % ERFNAMN
       ADD   (CT2
       COPY  SA DX
       LDX   ,X
       MON   32
       LDX   (T7             % HP-STATUS:
       MON   32
       LDA I (PBLK+50        % HP
       COPY  DD
       SAX   4
       JPL I (PRIDE
       LDX   (T9             % /
       MON   32
       LDA I (PBLK+51        % HPSTAT
       COPY  DD
       SAX   4
       JPL I (PRIDE
       LDX   (T01            % ERF:
       MON   32
       LDF I (PBLK+52        % EXP
       SAX   12
       JPL I (PRIFP
       LDX   (T16            % TROLLKRAFT:
       MON   32
       LDA I (PBLK+116
       COPY  DD
       SAX   3
       JPL I (PRIDE
       JMP   L1
&
L1,    LDX   (T5             % SMARAGDER:
       MON   32
       LDA I (PBLK+103
       COPY  DD
       SAX   2
       JPL I (PRIDE
       LDX   (T9             % /
       MON   32
       LDA I (PBLK+77
       COPY  DD
       SAX   6
       JPL I (PRIDE
       LDX   (T3             % MATPAKET:
       MON   32
       LDA I (PBLK+101
       COPY  DD
       SAX   2
       JPL I (PRIDE
       LDX   (T2             % GULD:
       MON   32
       LDA I (PBLK+100
       COPY  DD
       SAX   5
       JPL I (PRIDE
       LDA I (PBLK+122
       JAZ   MK
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDX   (T03            % [RKEFIENDE:
       MON   32
       LDX   (PBLK
       MON   32
       LDA I (CPLR           % L[S IN CPLR IGEN F\R RESTEN AV STATUSLISTAN
       SAT   0
       JPL I (RDPLR
MK,    LDX   (T4             % D\DADE FIENDER:
       MON   32
       LDA I (PBLK+61
       COPY  DD
       SAX   4
       JPL I (PRIDE
       LDX   (T09            % STYRKA:
       MON   32
       LDA I (PBLK+112
       COPY  DD
       SAX   2
       JPL I (PRIDE
       LDX   (T08            % RUSTSTYRKA:
       MON   32
       LDA I (PBLK+110       % AC
       COPY  DD
       SAX   2
       JPL I (PRIDE
       LDX   (T02            % D\DADE LAGL\SA:
       MON   32
       LDA I (PBLK+102
       COPY  DD
       SAX   4
       JPL I (PRIDE
       LDX   (T11            % VISDOM:
       MON   32
       LDA I (PBLK+114
       COPY  DD
       SAX   2
       JPL I (PRIDE
       LDX   (T10            % IQ:
       MON   32
       LDA I (PBLK+113
       COPY  DD
       SAX   2
       JPL I (PRIDE
END,   LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT PLA
)9LIB PLA
T1,    '#'
T2,    '$Tryck <CR>'
T3,    ': '
T4,    ' '
T5,    '*'
T6,    'D|d '
T8,    ', [rkeMagiker'
T9,    ' ('
T01,   'Fiende)'
T02,   'V{n)'
T03,   'lagl|s)'
PLAYER,0
RET,   0
PLA,   COPY  SL DX
       STX   RET
       LDA I (PBLK+60        % SAMMANSLUTNING
       STA I (XSAVE
       LDX   (LF
       MON   32
       SAA   1
       STA   PLAYER
LP,    LDA   PLAYER
       MPY   (20
       ADD   (100000
       STA I (QSAVE          % ADDR
       LDA   PLAYER
       LDX   (T1             % #
       MON   32
       SAT   12
       MON   35              % X
       LDX   (T3             % :
       MON   32
       LDX I (QSAVE
       LDA   ,X 17           % SAMM * 256 + STATUS
       AND   (377            % STATUS
       LDX   (T4             % _
       JAF   L1              % SOVANDE ELLER D\D
       LDX   (T5             % *
L1,    MON   32
       LDX I (QSAVE          % ADDR, NAMN
       MON   32
       LDX   (T9             % _(
       MON   32
       LDX I (QSAVE
       LDA   ,X 17
       AND   (377            % STATUS
       AAA   -2
       JAF   O3              % INTE D\D
       LDX   (T6             % D\D
       MON   32
O3,    LDX I (QSAVE
       LDA   ,X 17
       SHA   ZIN SHR 10      % SAMM
       JAZ   LLOES
       SUB I (XSAVE          % CPLRS SAMMANSLUTNING
       JAZ   FRND
       LDX   (T01            % FIENDE
       JMP   PRUT
FRND,  LDX   (T02            % V[N
       JMP   PRUT
LLOES, LDX   (T03
PRUT,  MON   32
       LDX   (LF
       MON   32
       LDT   (SPILL
       LDX   (LF
       JPL I (INPUT
       JXZ   NEXT
       JMP   END
NEXT,  MIN   PLAYER
       SAT   0
       JPL I (RDATA          % RDATA
       LDA I (DBLK
       SUB   PLAYER
       JAP   LP
END,   LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT SAY
)9LIB SAY
T1,    'Meddelande?'
SUBST, COPY  SX DT
       SAX   0
LP,    AAX   1
       LBYT
       AAX   -1
       SBYT
       AAA   -47
       JAZ   ENDE
       AAX   1
       JMP   LP
ENDE,  EXIT
ALLEZ, 0
RET,   0
SAY,   COPY  SL DX
       STX   RET
       STT   ALLEZ           % S[GER/SKRIKER
       LDT   (SPILL+400      % RADEN
       SAX   0
       LBYT
       AAA   -41             % !
       JAZ   FR
       AAA   -1              % "
       JAZ   FR
       LDT   (SPILL          % ARG
       LBYT
       AAA   -47             % '
       JAF   DOIT            % FINNS REDAN ETT MEDDELANDE I ARGBUFFEN
       LDX   (T1             % MEDDELANDE?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT          % MEDDELANDE?
       JXZ   END
DOIT,  LDA   (SPILL          % FLYTTA SNACKET TILL MBLK
       LDX   (MBLK
       JPL I (MOVST
       SAT   1
       JPL I (RDATA          % RDATA
       MIN I (DBLK+2
       JPL I (WDATA          % WDATA
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74
       COPY  SA DD
       LDA I (DBLK+2
       AND   (177
       JPL I (WLINE          % WLINE
       LDA I (DBLK+2
       AND   (177
       COPY  SA DT
       SAA   10
       LDX   ALLEZ
       JXZ   RH              % S[GER
       JPL I (AHAPP
       JMP   END
RH,    JPL I (RHAPP
END,   LDA I (RET
       COPY  SA DP
FR,    LDA   (SPILL+400      % FR]N RADEN
       LDX   (SPILL          % TILL ARG
       JPL I (MOVST
       LDX   (SPILL          % ARG
       JPL I (SUBST          % TA BORT ETT TKN I B\RJAN?
       JMP   DOIT
&
)9END
)CLEAR
)9BEG
)9ENT HLP
)9LIB HLP
F1,    '(EL4B)COVE-HELP'
FT,    #SY; #MB
FIL,   0
HLP,   LDX   (F1
       LDA   (FT
       SAT   1
       MON   50
       MON   65
       STA   FIL
LP,    LDT   FIL
       MON   1
       JMP   END
       SAT   1
       MON   2
       MON   65
       JMP   LP
END,   LDT   FIL
       MON   43
       MON   65
       EXIT
&
)9END
)CLEAR
)9BEG
)9ENT INFO
)9LIB INFO
F1,    '(EL4B)COVE-INFO'
FT,    #SY; #MB
FIL,   0
INFO,  LDX   (F1
       LDA   (FT
       SAT   1
       MON   50
       MON   65
       STA   FIL
LP,    LDT   FIL
       MON   1
       JMP   END
       SAT   1
       MON   2
       MON   65
       JMP   LP
END,   LDT   FIL
       MON   43
       MON   65
       EXIT
&
)9END
)CLEAR
)9BEG
)9ENT CHA
)9LIB CHA
T1,    '[ndra v{rde #'
T2,    'Nuvarande v{rde: '
T3,    '  -> V{rde?'
T4,    '[ndra v{rden f|r spelare #'
VALUE, 0
NUM,   0
RET,   0
CHA,   COPY  SL DX
       STX   RET
       LDA I (CPLR
       STA I (QSAVE
       AAA   -1
       JAF   LP
       LDX   (T4
       MON   32
       SAT   12
       JPL I (INBAZ
       JAZ   LP
       STA I (QSAVE          % SPELARE #
LP,    LDX   (T1             % [NDRA V[RDE?
       MON   32
       SAT   12
       JPL I (INBAZ
       JAZ   END
       ADD   (PBLK
       STA   VALUE
       LDA I (QSAVE
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDX   (T2             % NUVARANDE V[RDE:
       MON   32
       LDX   VALUE
       LDA   ,X
       SAT   12
       MON   35
       LDX   (T3             % V[RDE?
       MON   32
       JPL I (INBAZ
       STA   NUM
       LDA I (QSAVE
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDX   VALUE
       LDA   NUM
       STA   ,X
       LDA I (QSAVE
       JPL I (WTPLR          %
       JMP   LP
END,   LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT EAT
)9LIB EAT
T1,    'Du har inga matpaket kvar.'
T2,    'Ok.'
RET,   0
EAT,   COPY  SL DX
       STX   RET
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+101       % MAT
       JAF   O1
       LDX   (T1
END,   MON   32
       LDA   RET
       COPY  SA DP
O1,    AAA   -1
       STA I (PBLK+101
       SAA   40
       ADD I (PBLK+125       % MAT COUNT
       STA I (PBLK+125
       AAA   -100
       JAN   SAVE
       SAA   100
       STA I (PBLK+125
SAVE,  LDA I (CPLR
       JPL I (WTPLR          %
       LDA I (PBLK+74
       COPY  SA DD
       SAA   6
       JPL I (RHAPP
       LDX   (T2
       JMP   END
&
)9END
)CLEAR
)9BEG
)9ENT PLOK
)9LIB PLOK
T1,    'Vem vill du plocka upp?'
T2,    'H{r finns ingen f|rutom du.'
T3,    'N}gon spelare med det namnet finns inte h{r.'
T4,    'Den spelaren {r inte d|d.'
T5,    'Ok.'
ANTAL, 0
ADDR,  0
RET,   0
PLOK,  COPY  SL DX
       STX   RET
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       AAA   -1
       JAF   O1
       LDX   (T2             % BARA DU H[R!
       JMP I (END
O1,    LDT   (SPILL          % KOLLA ARG
       SAX   0
       LBYT
       AAA   -47
       JAF   FR              % FINNS
       LDX   (T1             % VEM VILL DU PLOCKA UPP?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT          % PLOCKA UPP?
       JXZ   ENDD
FR,    JPL I (GETNA
       JAF   OK              % NAMNET HITTAT
       LDX   (T3             % NAMNET FINNS INTE
END,   MON   32
ENDD,  LDA I (RET
       COPY  SA DP
&
OK,    LDA I (ZSAVE          % PLOCKAD SPELARE
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+75        % STATUS
       AAA   -2              % KOLLA D\D
       JAZ   O2              % D\D
       LDX   (T4             % DEN VA JU INGE D\, JU!
       JMP   END
&
O2,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74        % L[S IN RUMMET F\R ATT TA BORT PLOCKADE SPELAREN
       SAT   1
       JPL I (RDROM          % RDROM
       LDT I (ZSAVE
       JPL I (REMPL
       LDA I (PBLK+74
       COPY  SA DD
       JPL I (WTROM          % WTROM
       LDA I (CPLR           % KOLLA BUREN?
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+76
       STA I (XSAVE          % EVENTUELLT BUREN SPELARE
       LDA I (ZSAVE
       STA I (PBLK+76
       LDA I (CPLR
       JPL I (WTPLR          %
       LDA I (XSAVE
       JAZ   O4              % B[R INGEN
       COPY  SA DT
       SAA   16              % SL[PPER SPELARE #T
       JPL I (RHAPP
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM
       LDT I (XSAVE
       JPL I (ADDPL
       LDA I (PBLK+74
       JPL I (WTROM
O4,    LDT I (ZSAVE
       SAA   15              % PLOCKAR SNUBBE
       JPL I (RHAPP
       LDX   (T5
       JMP I (END
&
)9END
)CLEAR
)9BEG
)9ENT TAPP
)9LIB TAPP
T1,    'Du b{r inte p} n}gon.'
T2,    'Du sl{pper '
T3,    '.'
RET,   0
TAPP,  COPY  SL DX
       STX   RET
       LDA I (PBLK+76
       JAZ   ERR             % INGEN SPELARE
       COPY  SA DT
       LDA I (PBLK+74
       COPY  SA DD
       SAA   16
       JPL I (RHAPP
       LDA I (PBLK+76
       SAT   0
       JPL I (RDPLR
       LDX   (T2
       MON   32
       LDX   (PBLK
       MON   32
       LDX   (T3
       MON   32
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM
       LDT I (PBLK+76
       JPL I (ADDPL
       LDA I (PBLK+74
       JPL I (WTROM
       STZ I (PBLK+76
       LDA I (CPLR
       JPL I (WTPLR
END,   LDA   RET
       COPY  SA DP
ERR,   LDX   (T1
       MON   32
       JMP   END
&
)9END
)CLEAR
)9BEG
)9ENT DODA
)9LIB DODA
T1,    'Vem vill du anfalla?'
T2,    'Du {r ju ensam i rummet.'
T3,    'Finns ingen med det namnet i det h{r rummet.'
T4,    'Du kan inte anfalla en sovande spelare.'
T5,    'Den spelaren {r ju redan ihj{lslagen.'
T6,    'Du tr{ffar och orsakar'
T7,    ' skada.'
T8,    'Du anfaller en av dina egna, du blir lagl|s.$'
T9,    'Du missar...'
ANTAL, 0
ADDR,  0
RET,   0
DODA,  COPY  SL DX
       STX   RET
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       AAA   -1
       JAF   O1              % OK, FINNS FLER [N CPLR I RUMMET
       LDX   (T2             % BARA DU H[R
       JMP   END
O1,    LDT   (SPILL          % KOLLA ARG
       SAX   0
       LBYT
       AAA   -47
       JAF   FR              % STR[NG FINNS
NFND,  LDX   (T1             % D\DA VEM?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT          
FR,    JPL I (GETNA          % H[MTAR # P] SPELARNAMN I (SPILL, KAN VARA F\RK.
       JAZ   ENDD            % A = # P] HITTAD SPELARE, FINNS [VEN I ZSAVE
       LDA I (ZSAVE          % L[S IN ANFALLEN SPELARE
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+50        % HP
       AAA   -1
       JAP   NTDOD
       LDX   (T5
       JMP   END
NTDOD, LDA I (PBLK+60        % ANFALLEN SPELARES SAMMANSLUTNING
       STA I (XSAVE
       LDA I (PBLK+75        % STATUS
       JAZ   O2              % JO (VAKEN, ALLTS])
       LDX   (T4             % INTE VAKEN
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
&
DAM,   0                     % SKADA
ZPO,   0
O2,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+60
       JAZ   LLOES
       SUB I (XSAVE
       JAF   LLOES
       LDX   (T8             % DU BLIR LAGL\S
       MON   32
       SAA   35              % CPLR BLIR LAGL\S, JU
       JPL I (AHAPP
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       STZ I (PBLK+60        % LAGL\S!
       LDA I (CPLR
       JPL I (WTPLR
LLOES, LDX I (PBLK+63        % UTRUSTAT VAPEN
       JXZ   ZV1
       LDA   ,X              % VAPEN #
       JAZ   ZV1             % UTRUSTAT VAPEN = 0, FEL
       JPL I (RITEM
       LDA I (IBLK+63        % SKADA
       STA   ZPO
       STZ   DAM
ZV2,   MON   11              % FIXA STYRKE-/VAPENBEROENDE BER AV DAM
       REXO  SD DA
       AND   (3
       ADD   DAM
       STA   DAM
       LDA   ZPO
       AAA   -1
       STA   ZPO
       JAF   ZV2
       LDA I (PBLK+112       % STYRKA
       SHA   ZIN SHR 3       % / 8, + DAM F\R STYRKAN
       ADD   DAM
       STA   DAM
       LDA I (PBLK+121       % NIV]
       SHA   ZIN SHR 1       % / 2
       ADD   DAM
ZV1,   STA   DAM
       LDA I (PBLK+115       % KLASS
       AAA   -1
       JAF   ZV3             % INGEN KRIGARE
       LDA I (PBLK+121       % NIV] * 2 ADDERAS TILL SKADAN
       SHA   ZIN 1           % * 2
       ADD   DAM
       STA   DAM
ZV3,   LDA I (PBLK+74        % RUMS#
       COPY  SA DD
       LDA I (ZSAVE          % ANFALLEN SPELARE
       SAT   0
       JPL I (RDPLR          % L[S IN ANFALLNA SPELAREN OCH KOLLA AC
       LDA I (PBLK+110       % AC
       SHA   SHR 2           % / 4
       SUB   DAM
       JAN   KILLIT          % TR[FF!
       LDT I (ZSAVE
       SAX   0
       SAA   13              % ANFALLER T OCH MISSAR... (X=0)
       JPL I (RHAPP
       LDX   (T9             % DU MISSAR...
       JMP   END
&
KILLIT,LDX   (T6             % DU ORSAKAR
       MON   32
       LDA   DAM             % X
       SAT   12
       MON   35
       LDX   (T7             % SKADA
       MON   32
       LDT I (ZSAVE          % D1
       LDX   DAM             % D2
       SAA   13              % ANFALLER D1 OCH ORSAKAR D2 SKADA
       JPL I (RHAPP
       JMP I (ENDD
&
)9END
)CLEAR
)9BEG
)9ENT BUTIK
)9LIB BUTIK
TM1,   '1. S{lja smaragder$2. K|pa matpaket$3. K|pa utrustning$4. S{lja   -""-$5. ]teruppliva spelare'
TM2,   '$0. Tillbaka till v{rlden$'
TM3,   'Ditt val ?'
TER,   'Du har inte r}d eller s} finns inte prylen i lager.$'
BT4,   ')?'
BT3,   'Hur m}nga matpaket vill du k|pa (1-'
BT5,   'Vill du }teruppliva '
BT6,   ' (<J>,N)?'
BT7,   'Hur m}nga smaragder vill du s{lja (1-'
T1,    'Du har inga smaragder att s{lja.$'
T2,    '$?'
T3,    'Du beh|ver inga eller har inte r}d att k|pa fler matpaket.$'
T4,    'Du har inga prylar att s{lja.$'
T5,    'H{r finns ingen att }teruppliva.$'
T6,    '. '
T7,    'Vad vill du s{lja?'
T8,    'Vill du k|pa:$1. Annat$2. Rustningar$3. Vapen$4. Magiska f|rem}l$5. Sk|ldar$6. Hj{lmar$7. Handskar$'
T9,    'Ok.$'
T10,   '$      # Pris       Namn$'
T11,   '$Vad vill du k|pa?'
T12,   'Du orkar inte b{ra fler prylar.$'
T13,   'Du sl{pper '
T14,   '.$'
RET,   0
BUTIK, COPY  SL DX
       STX   RET
       LDA   (ENDLF
       MON   300
       STZ   *
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+76        % CARRY#
       STZ I (PBLK+76
       STA I (QSAVE
       LDA I (PBLK+51
       STA I (PBLK+50
       LDA I (CPLR
       JPL I (WTPLR          %
CH,    LDA I (QSAVE
       JAZ   MENU
       SAA   4
       SAT   1
       JPL I (RDROM
       LDT I (QSAVE
       JPL I (ADDPL
       SAA   4
       JPL I (WTROM
       LDA I (QSAVE
       SAT   0
       JPL I (RDPLR
       LDX   (T13            % DU SL[PPER
       MON   32
       LDX   (PBLK           % ZZ
       MON   32
       LDX   (T14            % .$
       MON   32
MENU,  LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDX   (TM1            % MENYN
       MON   32
       LDX   (TM2            % 0. TILLBAKA TILL V[RLDEN
       MON   32
MENU1, LDX   (TM3
       MON   32
       SAT   12
       JPL I (INBAZ
       JXZ   MENU
       JAZ   ENDSH
       AAA   -1
       JAZ   SELLE
       AAA   -1
       JAF   O1
       JMP I (BUYFO
O1,    AAA   -1
       JAF   O2
       JMP I (BUYIT
O2,    AAA   -1
       JAF   O3
       JMP I (SELIT
O3,    AAA   -1
       JAF   MENU1
       JMP I (RESUR
ENDLF, LDX   (LF
       MON   32
ENDSH, LDA I (RET
       COPY  SA DP
SELLE, LDA I (PBLK+103       % SMARAGDER I FICKAN
       JAF   SEL
       LDX   (T1
       MON   32
       JMP   MENU1
SEL,   LDX   (BT7
       MON   32
       SAT   12
       MON   35
       LDX   (BT4
       MON   32
       JPL I (INBAZ
       AND   (77777
       STA I (MAX
       JAZ   MENU
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+103
       LDX I (MAX
       SKP   IF SX GRE DA
       JMP   SELLE
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+103
       SUB I (MAX
       STA I (PBLK+103
       LDA I (MAX
       MPY   (1356           % 750 GULDMYNT/SMARAGD
       ADD I (PBLK+100
       STA I (PBLK+100
       LDA I (MAX
       ADD I (PBLK+77
       STA I (PBLK+77
       LDA I (CPLR
       JPL I (WTPLR          %
       LDX   (T9
       MON   32
       JMP   MENU1
&
ADDR,  0
ERR,   LDX   (T3
       MON   32
ER,    JMP I (MENU1
BUYFO, SAA   14              % MAX 12 MATPAKET
       SUB I (PBLK+101
       JAZ   ERR
       STA I (MAX
       LDA I (PBLK+100
       SHA   ZIN SHR 5
       STA I (QSAVE
       JAZ   ERR
       LDX I (MAX
       SKP   IF SX GRE DA
       STA I (MAX
BFO,   LDA I (MAX
       LDX   (BT3
       MON   32
       SAT   12
       MON   35
       LDX   (BT4
       MON   32
       JPL I (INBAZ
       AND   (77777
       STA I (QSAVE
       JAZ   ER
       COPY  SA DX
       LDA I (MAX
       SKP   IF DA GRE SX
       JMP   ER
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+101
       ADD I (QSAVE
       STA I (PBLK+101
       LDA I (QSAVE
       SHA   ZIN 5
       STA I (QSAVE
       LDA I (PBLK+100
       SUB I (QSAVE
       STA I (PBLK+100
       LDA I (CPLR
       JPL I (WTPLR          %
       LDX   (T9
       MON   32
       JMP   ER
&
MAX,   0
RERR,  LDX   (T5             % FINNS INGEN ATT ]TERUPPLIVA
       MON   32
RE,    JMP I (MENU1
RESUR, SAA   4               % BUTIK
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       STA   MAX
       AAA   -1
       JAZ   RERR
       LDX   (RBLK+325
       STX I (ADDR
LP,    LDX I (ADDR
       LDA   ,X
       AND   (377
       JAZ   NEXT
       SUB I (CPLR
       JAZ   OO1
       LDA   ,X
       AND   (377
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+75
       AAA   -2
       JAF   OO1
       LDX   (BT5
       MON   32
       LDX   (PBLK
       MON   32
       LDX   (BT6
       MON   32
       LDT   (SPILL
       LDX   (T2
       JPL I (INPUT
       JXZ   FIXA
       LDT   (SPILL
       SAX   0
       LBYT
       AAA   -116            % N
       JAZ   OO1
FIXA,  LDX I (ADDR
       LDA   ,X
       AND   (377
       SAT   1
       JPL I (RDPLR          % RDPLR
       SAA   1
       STA I (PBLK+75
       SAA   10
       ADD I (PBLK+125
       STA I (PBLK+125
       LDA I (PBLK+51
       STA I (PBLK+50
       LDX I (ADDR
       LDA   ,X
       AND   (377
       JPL I (WTPLR          %
       LDX   (T9
       MON   32
OO1,   LDA I (MAX
       AAA   -1
       STA I (MAX
NEXT,  LDA I (MAX
       MIN I (ADDR
       JAF   LP
       JMP   RE
&
SADDR, 0
SANT,  0
PNR,   0
SELIT, LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       SAA   1
       STA   PNR
       LDX   (PBLK+134       % PRYLBUF
       STX   SADDR
       LDA I (PBLK+130       % ANTAL PRYLAR
       STA   SANT
       JAF   SPRYL
       LDX   (T4             % DU HAR INGA PRYLAR ATT S[LJA
       JMP   TMENU
SPRYL, LDX   SADDR
       LDA   ,X
       JAZ   NXT
       JPL I (RITEM
       LDA   PNR
       SAT   12
       MON   35
       LDX   (T6             % ._
       MON   32
       LDX   (IBLK           % SKRIV UT KORTNAMN
       MON   32
       LDX   (LF
       MON   32
       LDA   SANT
       AAA   -1
       STA   SANT
       MIN   PNR
NXT,   MIN   SADDR
       LDA   SANT
       JAF   SPRYL
       LDX   (T7             % VILKEN VILL DU S[LJA?
       MON   32
       SAT   12
       JPL I (INBAZ
       JXZ   TM
       JAZ   SELIT
       SUB   PNR
       JAP   SELIT
       ADD   PNR
       STA   PNR
       LDX   (PBLK+134
L1,    LDA   ,X
       JAZ   L2
       LDA   PNR
       AAA   -1
       STA   PNR
       JAZ   L3              % S[LJ, FIXA PENGAR & LAGERLISTAN
L2,    AAX   1
       JMP   L1
L3,    STX   SADDR
       LDA   ,X              % PRYL #, OK
       ADD   (DBLK+107       % FIRST ITEM - 1 IN STORE LIST
       STA I (QSAVE          % PEKARE TILL LAGERLISTAN
       SAT   1
       JPL I (RDATA          % FIXA LAGERLISTAN
       LDX I (QSAVE
       MIN   ,X
       JPL I (WDATA
       LDX   SADDR
       LDA   ,X
       JPL I (RITEM
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+100       % GULD I FICKAN
       ADD I (IBLK+61        % + V[RDE
       STA I (PBLK+100
       LDX   SADDR
       STZ   ,X
       LDA I (PBLK+130       % ANTAL PRYLAR
       AAA   -1
       STA I (PBLK+130
       LDA I (CPLR
       JPL I (WTPLR
       LDX   (T9
       MON   32
       JMP   SELIT
TMENU, MON   32
TM,    JMP I (MENU1
&
PF,    0
BNR,   0
BADDR, 0
BUYIT, LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+130       % ANTAL PRYLAR
       AAA   -10
       JAF   BUY
       LDX   (T12
       JMP   TMENU
BUY,   LDX   (T8             % VAD VILL DU K\PA (1-7)?
       MON   32
       LDX   (T11
       MON   32
       JPL I (INBAZ
       JAZ   TM
       AAA   -1
       STA I (QSAVE          % QSAVE = TYP
       LDX   (T10            %, LAGER, NAMN
       MON   32
       SAA   1
       STA   BNR             % STARTPRYL
       STA   PF              % PRYL FINNS
       SAT   0
       JPL I (RDATA
BLP,   LDA   BNR             % CURRENT ITEM
       JPL I (RITEM
       LDA I (IBLK+60        % TYP
       SUB I (QSAVE
       JAF   BNXT            % FEL TYP
       LDA   BNR             % NUMMER
       ADD   (DBLK+107       % ..DBLK
       COPY  SA DX           % PEKARE I LAGERLISTAN
       LDA   ,X              % ANTAL PRYLAR I LAGER
       JAZ   BNXT            % FINNS INGA I LAGRET
       STZ   PF              % PRYL FINNS ATT K\PA-FLAGGAN
       LDA   BNR             % PRYL#
       SAT   12
       MON   35
       SAA   40              % _
       SAT   1
       MON   2
       MON   65
       LDA I (IBLK+61        % PRIS
       COPY  DD
       SAX   12
       JPL I (PRIDE
       SAA   40              % _
       SAT   1
       MON   2
       MON   65
       LDX   (IBLK           % KORTNAMN
       MON   32
       LDX   (LF
       MON   32
BNXT,  MIN   BNR
       LDA   BNR
       SUB I (DBLK+1         % MAX ANTAL PRYLAR
       AAA   -1
       JAF   BLP
       LDA   PF
       JAF   BUYIT           % FINNS INGA ATT K\PA
       LDX   (T11            % VILKEN VILL DU K\PA?
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (ZSAVE
       JAZ   BUYIT
       SUB I (DBLK+1
       AAA   -1
       JAP   BUYIT
       LDA I (ZSAVE
       JPL I (RITEM
       LDA I (IBLK+60
       SUB I (QSAVE
       JAZ   ODKE
       LDX   (TER            % INTE TYPEN
       JMP   PRUT
ODKE,  LDA I (PBLK+100       % GULD
       SUB I (IBLK+61
       JAP   RAD
       LDX   (TER            % INTE R]D
       JMP   PRUT
RAD,   LDA I (ZSAVE
       ADD   (DBLK+107
       COPY  SA DX           % PEKARE I LAGERLISTAN
       LDA   ,X
       JAF   BRAD
       LDX   (TER            % INTE I LAGER
       JMP   PRUT
BRAD,  LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+100       % GULD
       SUB I (IBLK+61        % V[RDE
       STA I (PBLK+100
       MIN I (PBLK+130       % ANTAL PRYLAR
       LDX   (PBLK+134
BL1,   LDA   ,X
       JAZ   BL2
       AAX   1
       JMP   BL1
BL2,   LDA I (ZSAVE
       STA   ,X
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (ZSAVE
       ADD   (DBLK+107       % PEKARE I LAGERLISTAN
       STA I (ZSAVE
       SAT   1
       JPL I (RDATA
       LDX I (ZSAVE
       LDA   ,X
       AAA   -1
       STA   ,X
       JPL I (WDATA
       LDX   (T9
PRUT,  MON   32
       JMP   BUYIT
&
)9END
)CLEAR
)9BEG
)9ENT VIEW
)9LIB VIEW
T1,    '#'
T2,    ': '
NUM,   0
RET,   0
VIEW,  STZ   NUM
       COPY  SL DX
       STX   RET
LP,    LDA   NUM
       JPL I (RLINE          % RLINE
       LDX   (T1
       MON   32
       LDA   NUM
       SAT   12
       MON   35
       LDX   (T2
       MON   32
       LDX   (MBLK
       MON   32
       MIN   NUM
       LDA   NUM
       SUB   (200
       JAZ   END
       LDT   (SPILL
       LDX   (LF             %!
       JPL I (INPUT
       JXZ   LP
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT PSW
)9LIB PSW
T1,    'Nytt l|senord ?'
T2,    'Ok, l|senordet {ndrat.'
T3,    'Skriv det igen:'
T4,    'Fel!$'
RET,   0
PSW,   COPY  SL DX
       STX   RET
LP,    LDX   (T1
       MON   32
       JPL I (PSWIN
       STA I (QSAVE
       LDX   (T3
       MON   32
       JPL I (PSWIN
       SUB I (QSAVE
       JAZ   CHA
       LDX   (T4
       MON   32
       JMP   LP
CHA,   LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (QSAVE
       STA I (PBLK+120       % PASSWORD
       LDA I (CPLR
       JPL I (WTPLR          %
       LDX   (T2
       MON   32
       LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT TERM
)9LIB TERM
T1,    'Terminal nummer (0 deaktiverar skyddet) ?'
NUM,   0
RET,   0
TERM,  COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       SAT   12
       JPL I (INBAZ
       STA   NUM
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA   NUM
       STA I (PBLK+132
       LDA I (CPLR
       JPL I (WTPLR          %
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT MAKE
)9LIB MAKE
T1,    'Nummer ?'
T2,    'Kortnamn ?'
T3,    'L}ngnamn ?'
T4,    'Typ (0-Misc, 1-Rustning, 2-Vapen, 3-Magiskt, 4-Sk|ld, 5-Hj{lm, 6-Handskar)?'
T5,    'V{rde?'
T6,    'AC-?'
T7,    'Damage (X*4)?'
RET,   0
MAKE,  COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (QSAVE
       JAZ   END
       LDA I (CPLR
       AAA   -1              % KOLLA SYSOP
       JAF   DO              % NIX
       LDX   (T2             % NAMN?
       MON   32
       LDT   (IBLK
       LDX   (T2
       JPL I (INPUT
       JXZ   DO              % INTE [NDRA NAMN
       LDX   (T3
       MON   32
       LDT   (IBLK+10        % L]NGNAMN
       LDX   (T3
       JPL I (INPUT
       LDX   (T4             % TYP?
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (IBLK+60
       LDX   (T5             % V[RDE?
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (IBLK+61
       LDX   (T6             % AC-?
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (IBLK+62
       LDX   (T7             % DAMAGE?
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (IBLK+63
       LDA I (QSAVE
       JPL I (WITEM          % WITEM
DO,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (RBLK+260
       AAA   -40
       JAZ   END             % 32 PRYLAR I RUMMET
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM          % RDROM
       MIN I (RBLK+260
       LDX   (RBLK+265
L1,    LDA   ,X
       JAZ   L2
       AAX   1
       JMP   L1
L2,    LDA I (QSAVE
       STA   ,X
       LDA I (PBLK+74
       JPL I (WTROM          % WTROM
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT INV
)9LIB INV
T1,    'Du b{r inte p} n}got.'
T2,    'Du b{r p} '
T3,    '*'
T4,    ' ('
T5,    '); '
ANTAL, 0
ADDR,  0
RET,   0
INV,   COPY  SL DX
       STX   RET
       LDA I (PBLK+74        % RUM
       COPY  SA DD
       SAA   34              % INSPEKTERAR
       JPL I (RHAPP
       LDA I (PBLK+130
       JAF   ITL
       LDX   (T1
       MON   32
END,   LDA   RET
       COPY  SA DP
ITL,   LDX   (T2
       MON   32
       LDX   (PBLK+134
       STX   ADDR
       STA   ANTAL
LP,    LDX   ADDR
       LDA   ,X
       JAZ   NEXT
       JPL I (RITEM          % RITEM
       LDX   (IBLK+10        % L]NGNAMN
       MON   32
       LDX   (T4             % _(
       MON   32
       LDA I (IBLK+60        % PRYLTYP
       JAZ   NUTR            % INGEN "UTRUSTNINGSBAR" PRYL
       ADD   (PBLK+61        % A PEKAR P] UTRUSTNINGSLISTAN
       COPY  SA DX
       LDX   ,X              % X = ADRESS I PRYLBUFFER OM UTRUSTAD
       JXZ   NUTR            % INGEN S]N UTRUSTAD
       LDA   ADDR
       RSUB  SX DA           % DRA FR]N X
       JAF   NUTR            % INTE DENNA PRYL I ALLA FALL
       LDX   (T3             % *
       MON   32
NUTR,  LDX   (IBLK           % KORTNAMN
       MON   32
       LDX   (T5             % );_
       MON   32
       LDA   ANTAL
       AAA   -1
       STA   ANTAL
NEXT,  MIN   ADDR
       LDA   ANTAL
       JAF   LP
       JMP   END
&
)9END
)CLEAR
)9BEG
)9ENT LOGO
)9LIB LOGO
RET,   0
LOGO,  COPY  SL DX
       STX   RET
       SAA   21              % LOGOUT
       JPL I (AHAPP
       SAT   1
       JPL I (RDATA
       LDX   (DBLK+10
       STZ   ,X
       COPY  SX DA
       AAX   1
       LDT   (77             % ?
       JPL I (LDIR
       JPL I (WDATA
       LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT GET
)9LIB GET
T1,    'Vad vill du plocka upp?'
T2,    'N}got s}dant existerar inte i det h{r rummet.'
T3,    'Det finns inga f|rem}l i rummet.'
T4,    'Du b{r p} f|r m}nga f|rem}l.'
T5,    'Hur m}nga guldmynt vill du plocka upp (1-'
T6,    'Hur m}nga matpaket vill du plocka upp (1-'
T8,    'Hur m}nga smaragder vill du plocka upp (1-'
T01,   'Du orkar inte b{ra s} mycket.'
ZZT,   'S} m}nga finns inte i rummet.'
TG,    'GULD'
TM,    'MAT'
TS,    'SMARAGDER'
T9,    ')?'
TOK,   'Ok.'
GETG,  STZ I (ADR
       LDT   (47041          % MAX 20000 GULDMYNT
       LDX   (T5
       JMP   PL
GETM,  SAX   1
       STX I (ADR
       SAT   15              % MAX 12 MATPAKET
       LDX   (T6
       JMP   PL
GETS,  SAX   3
       STX I (ADR
       SAT   3               % MAX 3 SMARAGDER
       LDX   (T8
PL,    LDA   (RBLK+254
       COPY  SA DB
       STT I (MAX
       STX   TXT
       LDX I (ADR
       LDA   ,B,X
       JAF   GETT
       JMP I (NONO
&
ADR,   0
MAX,   0
QTY,   0
TXT,   0
GETT,  LDX   TXT
       MON   32
       LDX I (ADR
       LDA   ,B,X
       SAT   12
       MON   35
       LDX   (T9
       MON   32
       JPL I (INBAZ
       AND   (77777
       STA I (QTY
       JAZ   OUT
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDX I (ADR
       LDA   ,B,X
       LDX I (QTY
       AAX   -1
       SKP   IF SA GRE DX
       JMP   GTIT
       LDX   (ZZT
       JMP I (Q
GTIT,  LDX I (ADR
       SUB I (QTY
       STA   ,B,X
       LDA   (PBLK+100
       COPY  SA DB
       LDA   ,B,X
       ADD I (QTY
       LDX I (MAX
       SKP   IF SX GRE DA
       JMP   GTGTE
       LDX   (T01
       JMP I (Q
GTGTE, LDA I (PBLK+74
       COPY  SA DD
       JPL I (WTROM          % WTROM
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDX I (ADR
       LDA I (QTY
       ADD   ,B,X
       STA   ,B,X
       LDA I (CPLR
       JPL I (WTPLR          %
       LDT I (ADR
       AAT   -4
       SAA   1
       JPL I (RHAPP
       LDX   (TOK
       MON   32
OUT,   JMP I (END
&
RET,   0
GET,   COPY  SL DX
       STX   RET
       LDT   (SPILL          % ARG
       SAX   0
       LBYT
       AAA   -47             % FINNS TEXT D[R?
       JAF   FR              % JA
       LDX   (T1
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   END
FR,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
CG,    LDA   (SPILL
       LDX   (TG
       JPL I (CMPST
       JAZ   CM
       JMP I (GETG
CM,    LDA   (SPILL
       LDX   (TM
       JPL I (CMPST
       JAZ   CS
       JMP I (GETM
CS,    LDA   (SPILL
       LDX   (TS
       JPL I (CMPST
       JAZ   GETITM
       JMP I (GETS
END,   LDA I (RET
       COPY  SA DP
&
ANTAL, 0
ADDR,  0
IT,    0
GETITM,LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+130
       AAA   -10
       JAF   PP
       LDX   (T4
       JMP   Q
PP,    LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (RBLK+260
       JAF   GETIT
       LDX   (T3
Q,     MON   32
       JMP I (END
GETIT, LDX   (RBLK+265
       STX I (ADDR
       STA I (ANTAL
LP,    LDX I (ADDR
       LDA   ,X
       JAZ   NEXT
       JPL I (RITEM          % RITEM
       LDA   (SPILL
       LDX   (IBLK
       JPL I (CMPST
       JAF   OK
       LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
NEXT,  MIN I (ADDR
       LDA I (ANTAL
       JAF   LP
NONO,  LDX   (T2
       JMP   Q
OK,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+74
       MIN I (PBLK+130
       SAT   1
       JPL I (RDROM          % RDROM
       LDX I (ADDR
       LDA   ,X
       JAZ   NONO
       COPY  SA DT
       LDX   (PBLK+134
L1,    LDA   ,X
       JAZ   L2
       AAX   1
       JMP   L1
L2,    STT   ,X
       LDA I (CPLR
       JPL I (WTPLR          %
       LDX I (ADDR
       LDA   ,X
       STA I (QSAVE
       STZ   ,X
       LDA I (RBLK+260
       AAA   -1
       STA I (RBLK+260
       LDA I (PBLK+74
       COPY  SA DD
       JPL I (WTROM          % WTROM
       LDT I (QSAVE
       SAA   1
       JPL I (RHAPP
       LDX   (TOK
       MON   32
       JMP I (END
&
)9END
)CLEAR
)9BEG
)9ENT DROP
)9LIB DROP
T1,    'Du b{r inte p} n}got.'
T2,    'Vad vill du sl{ppa?'
T3,    'Ok.'
T4,    'Du b{r inte p} n}got s}dant.'
T5,    'Hur m}nga vill du sl{ppa (1-'
T6,    'Du b{r inte p} s} m}nga.'
T7,    ')?'
TERR,  'S} m}nga ryms inte i rummet.'
TG,    'GULD'
TM,    'MAT'
TS,    'SMARAGDER'
DRG,   SAX   0
       JMP   DRPP
DRM,   SAX   1
       JMP   DRPP
DRS,   SAX   3
DRPP,  STX I (ADR
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA   (PBLK+100
       COPY  SA DB
       LDX I (ADR
       LDA   ,B,X
       JAF   OO1
       JMP I (OO2
OO1,   LDX   (T5
       MON   32
       LDX I (ADR
       LDA   ,B,X
       SAT   12
       MON   35
       LDX   (T7
       MON   32
       JPL I (INBAZ
       AND   (77777
       STA I (QTY
       JAF   O4
       JMP I (ENDD
&
ADR,   0
QTY,   0
O4,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDX I (ADR
       LDA   ,B,X
       JAF   QTYCH
       JMP I (QAZ
QTYCH, LDX I (QTY
       AAX   -1
       SKP IF SA GRE DX
       JMP   DRPIT
       LDX   (T6
       JMP I (END
DRPIT, STA I (ZSAVE
       LDA I (PBLK+74
       COPY  SA DD
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (ADR
       ADD   (RBLK+254
       COPY  SA DX
       LDA   ,X
       ADD I (QTY
       SUB   (100000
       JAN   DPIT
       LDX   (TERR
       JMP I (END
DPIT,  LDX I (ADR
       LDA I (ZSAVE
       SUB I (QTY
       STA   ,B,X
       LDA I (CPLR
       JPL I (WTPLR          %
       LDA   (RBLK+254
       COPY  SA DB
       LDX I (ADR
       LDA   ,B,X
       ADD I (QTY
       STA   ,B,X
       COPY  SD DA
       JPL I (WTROM          % WTROM
       LDT I (ADR
       AAT   -4
       JMP I (ZOP
&
ANTAL, 0
ADDR,  0
RET,   0
DROP,  COPY  SL DX
       STX   RET
       LDT   (SPILL
       SAX   0
       LBYT
       AAA   -47
       JAF   FR
       LDX   (T2
       MON   32
       LDT   (SPILL
       LDX   (T2
       JPL I (INPUT
       JXZ   ENDD
FR,    LDA   (SPILL
       LDX   (TG
       JPL I (CMPST
       JAZ   O5
       JMP I (DRG
O5,    LDA   (SPILL
       LDX   (TM
       JPL I (CMPST
       JAZ   O7
       JMP I (DRM
O7,    LDA   (SPILL
       LDX   (TS
       JPL I (CMPST
       JAZ   POS
       JMP I (DRS
&
POS,   LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDA I (PBLK+130
       STA I (ANTAL
       JAF   DRP
OO2,   LDX   (T1
END,   MON   32
ENDD,  LDA I (RET
       COPY  SA DP
DRP,   LDX   (PBLK+134
       STX I (ADDR
LP,    LDX I (ADDR
       LDA   ,X
       JAZ   NEXT
       JPL I (RITEM          % RITEM
       LDA   (SPILL
       LDX   (IBLK
       JPL I (CMPST
       JAF   OK
       LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
NEXT,  MIN I (ADDR
       LDA I (ANTAL
       JAF   LP
QAZ,   LDX   (T4
       JMP I (END
OK,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR          % RDPLR
       LDX I (ADDR
       LDA I (PBLK+130
       AAA   -1
       STA I (PBLK+130
       LDA   ,X
       STA I (QSAVE
       STZ   ,X
       LDA I (CPLR
       JPL I (WTPLR          %
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM          % RDROM
       MIN I (RBLK+260
       LDX   (RBLK+265
L1,    LDA   ,X
       JAZ   L2
       AAX   1
       JMP   L1
L2,    LDA I (QSAVE
       STA   ,X
       LDA I (PBLK+74
       COPY  SA DD
       JPL I (WTROM          % WTROM
       LDT I (QSAVE
ZOP,   SAA   2
       JPL I (RHAPP
       LDX   (T3
       JMP I (END
&
)9END
)9BEG
)9ENT PLUT
)9LIB PLUT
ST1,   's|mnig '
ST2,   'D|d '
T1,    ' ('
T2,    '); '
T3,    'Fiende'
T4,    'V{n'
T5,    'lagl|s'
T6,    '$Du ser '
T7,    '; '
ANTAL, 0
FLAGG, 0
ADDR,  0
RET,   0
PLUT,  COPY  SL DX
       STX   RET
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+60        % SAMMANSLUTNING
       STA I (XSAVE
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       JAF   QQW
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM          % RDROM
       SAA   1
       STA I (RBLK+261
       LDA I (PBLK+74
       JPL I (WTROM          % WTROM
       LDA I (RBLK+261
QQW,   AAA   -1
       JAZ   ITUT
       STA I (ANTAL
       STZ   FLAGG
       LDX   (RBLK+325       % PLR-BUFFER
       STX I (ADDR
       SAT   0
       JPL I (RDATA          % RDATA
LP,    LDX I (ADDR
       LDA   ,X
       AND   (377
       JAZ   NXPLR
       SUB I (CPLR
       JAZ   NXPLR
       LDA   ,X
       AND   (377
       MPY   (20
       ADD   (100000
       STA I (QSAVE
       COPY  SA DX
       LDA   ,X 17           % SAMM * 256 + STATUS
       AND   (377            % STATUS
       AAA   -1
       JAZ   NOPR            % SPELARE S\MNIG, SKRIV INTE UT
       LDA   FLAGG
       JAF   PRTQ
       MIN   FLAGG
       LDX   (T6             % DU SER
       MON   32
PRTQ,  LDX I (QSAVE          % ADDR
       MON   32
       LDX   (T1             % _(
       MON   32
       LDX I (QSAVE
       LDA   ,X 17
       AND   (377            % STATUS
       JAZ   LP9             % SPELAREN VAKEN
       LDX   (ST2            % D\D
LP8,   MON   32
LP9,   LDX I (QSAVE
       LDA   ,X 17           % SAMM * 256 + STATUS
       SHA   ZIN SHR 10      % / 256 = SAMM
       JAZ   LLOES           % LAGL\S
       SUB I (XSAVE          % CPLRS SAMMANSLUTNING
       JAZ   FRND
       LDX   (T3
       JMP   PRUT
FRND,  LDX   (T4
       JMP   PRUT
LLOES, LDX   (T5
PRUT,  MON   32
       LDX   (T2             % );_
       MON   32
NOPR,  LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
NXPLR, MIN I (ADDR
       LDA I (ANTAL
       JAF   LP
ITUT,  LDA I (RBLK+260       % ANTAL PRYLAR
       JAZ   END             % INGA PRYLAR
       STA I (ANTAL
       LDX   (RBLK+265
       STX I (ADDR
       LDX   (T6
       MON   32
ITMS,  LDX I (ADDR
       LDA   ,X
       JAZ   NXITM
       JPL I (RITEM          % RITEM
       LDX   (IBLK+10        % L]NGNAMN
       MON   32
       LDX   (T1             % (_
       MON   32
       LDX   (IBLK           % KORTNAMN
       MON   32
       LDX   (T2             % );_
       MON   32
       LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
NXITM, MIN I (ADDR
       LDA I (ANTAL
       JAF   ITMS
END,   LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT RUMUT
)9LIB RUMUT
T1,    '$Du ser '
T2,    ' guldmynt'
T3,    ' matpaket'
T5,    ' smaragder'
T7,    '; '
T8,    'Utg}ngar: '
TN,    'Norr '
TS,    'S|der '
TE,    '\ster '
TW,    'V{ster '
TU,    'Upp '
TD,    'Ned '
XITS,  LDX   (RBLK+240
       STX I (ADDR
       LDX   (T8
       MON   32
N,     LDX I (ADDR
       LDA   ,X
       JAZ   S
       LDX   (TN
       MON   32
S,     LDX I (ADDR
       LDA   ,X 2
       JAZ   E
       LDX   (TS
       MON   32
E,     LDX I (ADDR
       LDA   ,X 4
       JAZ   W
       LDX   (TE
       MON   32
W,     LDX I (ADDR
       LDA   ,X 6
       JAZ   U
       LDX   (TW
       MON   32
U,     LDX I (ADDR
       LDA   ,X 10
       JAZ   D
       LDX   (TU
       MON   32
D,     LDX I (ADDR
       LDA   ,X 12
       JAZ   RT
       LDX   (TD
       MON   32
RT,    EXIT
&
ZKOIJ, 0
ADDR,  0
RET,   0
RUMUT, COPY  SL DX
       STX   RET
       LDA I (PBLK+74
       SAT   0
       JPL I (RDROM          % RDROM
       LDA I (PBLK+124       % FLAGS
       AND   (1              % BRIEF FLAG
       JAF   DKOE
       LDX   (RBLK
       STX   ADDR
       SAA   4
       STA   ZKOIJ
OUT,   LDT   ADDR
       SAX   0
       LBYT
       AAA   -47             % KOLLA OM TOM RAD
       JAZ   DKOE
       LDX   ADDR
       MON   32
       LDX   (LF
       MON   32
       LDX I (ADDR
       AAX   50
       STX I (ADDR
       LDA   ZKOIJ
       AAA   -1
       STA   ZKOIJ
       JAF   OUT
DKOE,  LDA I (PBLK+74        % KOLLA OM RUMMET = BUTIK
       AAA   -4
       JAZ   END             % BUTIK, SKIPPA UTG & GULDMYNT
       JPL I (XITS           % SKRIV UT UTG]NGAR
       LDA I (RBLK+254       % ANTAL GULDMYNT
       ADD I (RBLK+255       % ANTAL MATPAKET
       ADD I (RBLK+257       % SMARAGDER
       JAZ   END             % INGA GULDMYNT, MATPAKET ELLER SMARAGDER
       LDX   (T1             % DU SER
       MON   32
       SAT   12              % TILL MON 35 NEDAN
GD,    LDA I (RBLK+254       % GULDMYNT I RUMMET
       JAZ   MT
       MON   35
       LDX   (T2
       MON   32
       LDX   (T7
       MON   32              % ;
MT,    LDA I (RBLK+255       % K[K
       JAZ   ES
       MON   35
       LDX   (T3
       MON   32
       LDX   (T7
       MON   32
ES,    LDA I (RBLK+257       % SMARAGDER
       JAZ   END
       MON   35
       LDX   (T5
       MON   32
       LDX   (T7
       MON   32
END,   LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT USE
)9LIB USE
T1,    'Anv{nd pryl?'
T2,    'Du b{r inte p} n}got s}dant.'
T3,    'Du b{r inte p} n}gonting.'
T4,    'Du kan inte anv{nda den prylen till n}gonting.'
T5,    'Ok.'
ANTAL, 0
ADDR,  0
RET,   0
USE,   COPY  SL DX
       STX   RET
       LDA I (PBLK+74        % TILL RHAPP
       COPY  SA DD
       LDT   (SPILL          % KOLLA ARG
       SAX   0
       LBYT
       AAA   -47
       JAF   FR              % ARG EXISTERAR
L1,    LDX   (T1             % ANV[NDA VAD?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   END             % <CR>
FR,    LDA I (CPLR           % L[S IN CPLR P] NYTT, KAN HA [NDRATS AV EN HAPP
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+130       % ANTAL PRYLAR
       JAZ   NOP             % INGA PRYLAR
       STA   ANTAL
       LDX   (PBLK+134       % PRYL BUF
       STX   ADDR
L2,    LDX   ADDR            % ADDRESS I PLAYERPRYLBUFF
       LDA   ,X              % KOLLA OM PRYL
       JAZ   NEXT            % NIX
       STA I (ZSAVE          % SIST S\KTA... PRYLEN!
       JPL I (RITEM          % L[S ITNAMN+DATA
       LDA   (IBLK
       LDX   (SPILL
       JPL I (CMPST          % J[MF\R
       JAF   OK              % HITTAT PRYLEN
       LDA   ANTAL
       AAA   -1
       STA   ANTAL
NEXT,  MIN   ADDR            % \KA ADDRESS I PPBUFF
       LDA   ANTAL           % KOLLA ANTAL KOLLADE PRYLNAMN
       JAF   L2              % FLER FINNS ATT KOLLA
       LDX   (T2             % PRYLEN FINNS INTE
PRUT,  MON   32
END,   LDX   RET             % INTE MAGIC ITEM RETURN
       SAA   0
       COPY  SX DP
NOP,   LDX   (T3
       JMP   PRUT
NOGOD, LDX   (T4
       JMP   PRUT
&
OK,    LDA I (ZSAVE          % PRYL#
       JPL I (RITEM
       LDA I (IBLK+60        % TYP
       JAZ   NOGOD           % TYP 0 - MISC ITEM
       AAA   -3              % KOLLA MAGIC ITEM
       JAF   NOMAG
       JMP I (MAGIC
NOMAG, LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+74        % RUM#
       COPY  SA DD
       LDT I (ZSAVE          % PRYL#
       SAA   22              % UTRUSTAR SIG
       JPL I (RHAPP
       LDX   (T5             % OK
       MON   32
       LDA I (IBLK+60        % TYP
EQUIP, LDA I (CPLR           % L[S IN PBLK F\R ATT [NDRA UTRUSTA#, EV AC
       SAT   1
       JPL I (RDPLR
       LDA   (PBLK+61        % UTRUSTADE PRYLAR-LISTA
       ADD I (IBLK+60        % TYP
       COPY  SA DX
       LDA   ADDR            % ADDR TILL UTRUSTAD PRYL
       STA   ,X              % SPARA PRYL# I UTRUSTA-LISTAN
                             % KOLLA OM UTRUSTADE PRYLAR VERKLIGEN FINNS
       LDX   (PBLK+62        % B\RJAN P] UTRUSTADE PRYLAR-LISTAN
       STX   ADDR
L3,    LDX   ADDR            % ADDRESS I UTRUSTADE PRYLAR-LISTAN SOM INNEH]LLER
                             % ADDRESSER TILL PRYLAR I PPBUFF
       LDX   ,X              % X - ADDRESS I PPBUFF
       JXZ   NPRYL           % INGET UTRUSTAT
       LDA   ,X              % UTRUSTAD PRYL#
       JAF   NPRYL           % UTRUSTAD PRYL FINNS VERKLIGEN I BUFFEN
       LDX   ADDR
       STZ   ,X
NPRYL, MIN   ADDR            % \KA ADDRESSEN I UTRUSTALISTAN
       LDA   ADDR
       SUB   (PBLK+70        % G]TT IGENOM HELA LISTAN?
       JAF   L3              % NIX
       STZ I (PBLK+110       % AC F\R SPELARE = 0
       LDX   (PBLK+62        % B\RJAN P] PRYLLISTAN, F\R ATT BER[KNA AC
       STX   ADDR
L4,    LDX   ADDR            % X - ADDR I UTRLISTA
       LDX   ,X              % X - ADDR I PRYLBUFF
       JXZ   L5              % INGET UTRUSTAT
       LDA   ,X              % P] UTRUSTAD PRYL
       JPL I (RITEM          % L[S DET
       LDA I (IBLK+62        % AC-/SPELL I DETTA FALL AC-
       ADD I (PBLK+110       % + AC
       STA I (PBLK+110       % AC F\R SPELAREN
L5,    MIN   ADDR
       LDA   ADDR
       SUB   (PBLK+64        % MAGISKT F\REM]L, INGEN AC-
       JAZ   L5
       LDA   ADDR
       SUB   (PBLK+63        % VAPEN, INGEN AC-
       JAZ   L5
       LDA   ADDR
       SUB   (PBLK+70        % SLUT LISTA
       JAF   L4
ENDD,  LDA I (CPLR           % SPARA SPELAREN
       JPL I (WTPLR
       JMP   END
&
MAGIC, LDX   (T5             % OK.
       MON   32
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDX I (ADDR
       SAA   23              % BROKEN ITEM
       STA   ,X
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (IBLK+62        % AC-/SPELL I DETTA FALL SPELL
       LDX I (RET
       COPY  SX DP
&
)9END
)CLEAR
)9BEG
)9ENT SRCH
)9LIB SRCH
T1,    'S|k vems kropp?'
T2,    'I det h{r rummet finns inga spelare.'
T4,    'Han har inga prylar.'
T5,    'Du hittade n}t!'
T6,    'Den spelaren {r inte d|d.'
ANTAL, 0
ADDR,  0
RET,   0
SRCH,  COPY  SL DX
       STX   RET
       LDA I (PBLK+74
       COPY  SA DD
       SAT   0
       JPL I (RDROM
       LDA I (RBLK+261       % ANTAL SPELARE I RUMMET
       JAF   ZZ
       LDX   (T2             % FINNS INGA SPELARE
       JMP   END
ZZ,    LDT   (SPILL
       SAX   0
       LBYT
       AAA   -47
       JAF   FR
       LDX   (T1             % S\K VEM?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   ENDD
FR,    JPL I (GETNA          % HITTA SPELARENS #
       JAF   OK              % NAMNET FINNS
       JMP   ENDD
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
&
OK,    LDA I (ZSAVE          % S\KTA SPELAREN
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+75        % STATUS
       AAA   -2
       JAZ   OK1             % SPELAREN D\D, OK
       LDX   (T6
       JMP   END
OK1,   LDT I (ZSAVE
       SAA   23              % S\KER ZZ
       JPL I (RHAPP
       LDA I (ZSAVE
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+130       % S\KTA SPELAREN INL[ST, TACK
       JAF   OP6             
       LDX   (T4             % INGA PRYLAR
       JMP   END
OP6,   LDA I (ZSAVE
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM
       LDA I (PBLK+130
       STA I (ANTAL
       ADD I (RBLK+260
       STA I (RBLK+260
       STZ I (PBLK+130
       LDA   (RBLK+265
       LDX   (PBLK+134       % PRYLBUFF, PLAYER
       COPY  SA DB           % PRYLBUFF, RUM
OP3,   LDA   ,X              % PLPRYL
       JAZ   NXT             % INGEN PRYL
OP4,   LDA   ,B              % RPRYL
       JAZ   OP5             % HITTA EN LUCKA
       AAB   1
       JMP   OP4
OP5,   LDA   ,X              % PLPRYL
       STZ   ,X
       STA   ,B              % TILL RUM
       LDA I (ANTAL
       AAA   -1
       STA I (ANTAL
NXT,   LDA I (ANTAL
       AAX   1
       JAF   OP3
OP1,   LDA I (ZSAVE          % SKRIV TILLBAKA D\ING
       JPL I (WTPLR          %
       LDA I (PBLK+74
       JPL I (WTROM
       LDX   (T5
       JMP   END
&
)9END
)CLEAR
)9BEG
)9ENT CHP
)9LIB CHP
T1,    'Editera pryl #'
T2,    'Typ   ('
T3,    'V{rde ('
T4,    'AC-   ('
T5,    'Skada ('
T6,    ')?'
RET,   0
CHP,   COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       SAT   12
       JPL I (INBAZ
       JXZ   END
       STA I (QSAVE
       JPL I (RITEM
       LDX   (T2
       MON   32
       LDA I (IBLK+60
       SAT   12
       MON   35
       LDX   (T6
       MON   32
       JPL I (INBAZ
       JXZ   O1
       STA I (IBLK+60
O1,    LDX   (T3
       MON   32
       LDA I (IBLK+61
       SAT   12
       MON   35
       LDX   (T6
       MON   32
       JPL I (INBAZ
       JXZ   O2
       STA I (IBLK+61
O2,    LDX   (T4
       MON   32
       LDA I (IBLK+62
       SAT   12
       MON   35
       LDX   (T6
       MON   32
       JPL I (INBAZ
       JXZ   O3
       STA I (IBLK+62
O3,    LDX   (T5
       MON   32
       LDA I (IBLK+63
       SAT   12
       MON   35
       LDX   (T6
       MON   32
       JPL I (INBAZ
       JXZ   ENDD
       STA I (IBLK+63
ENDD,  LDA I (QSAVE
       JPL I (WITEM
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT AP
)9LIB AP
T1,    'Hur m}nga olika prylar finns det?'
RET,   0
AP,    COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (QSAVE
       JXZ   END
       SAT   1
       JPL I (RDATA
       LDA I (QSAVE
       STA I (DBLK+1
       JPL I (WDATA
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT BRIEF
)9LIB BRIEF
T1,    'Brief mode p}'
T2,    'Brief mode av'
RET,   0
BRIEF, COPY  SL DX
       STX   RET
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+124       % FLAGS
       SAX   1               % TOGGLE BRIEF FLAG
       REXO  SX DA
       STA I (PBLK+124
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+124
       AND   (1              % BRIEF FLAG
       JAZ   OFF
       LDX   (T1
END,   MON   32
       LDA   RET
       COPY  SA DP
OFF,   LDX   (T2
       JMP   END
&
)9END
)CLEAR
)9BEG
)9ENT BYTC
)9LIB BYTC
)DEC
CV,    25; 15; 15            % KRIGARE
       15; 25; 15            % MAGIKER
       15; 15; 25            % PR[ST
       20; 20; 20            % TJUV
       15; 25; 25            % TROLLKARL
       20; 20; 30            % PALADIN
)OCT
T1,    'Du kan inte byta klass (f|r d}liga v{rden).'
T2,    '$Byta klass till?'
T3,    '$A/ Krigare'
T4,    '$B/ Magiker'
T5,    '$C/ Pr{st'
T6,    '$D/ Tjuv'
T7,    '$E/ Trollkarl'
T8,    '$F/ Paladin'
T9,    'V{lj bland dessa klasser:'
T01,   'Du kan inte byta till den klassen.'
T02,   'Ok.'
CL,    0; 0; 0; 0; 0; 0
RET,   0
       T3; T4; T5; T6; T7; T8
KOLL,  0
BYTC,  COPY  SL DX
       STX   RET
       LDA I (PBLK+112       % STYRKA
       AAA   -17             % KOLLA OM STYRKA < 15 (MINSTA F\R EN KLASS)
       JAP   OK
NIX,   LDX   (T1
       JMP I (END
OK,    LDA I (PBLK+113       % IQ
       AAA   -17
       JAN   NIX
       LDA I (PBLK+114       % VISDOM
       AAA   -17
       JAN   NIX
CHECK, LDX   (CL
L1,    SAA   1
       STA   ,X
       AAX   1
       COPY  SX DA
       SUB   (RET            % KOLLA SLUT P] LISTAN
       JAF   L1
       LDA I (PBLK+112       % STYRKA
       AAA   -24             % -20 (KOLLA TJUV)
       JAP   L2
       STZ   CL+3            % NIX TJUV
L2,    AAA   -5              % -5 (KOLLA KRIGARE)
       JAP   L3     
       STZ   CL              % NIX KRIGARE
L3,    LDA I (PBLK+113       % IQ
       AAA   -24             % -20 (KOLLA TJUV & PALADIN)
       JAP   L4
       STZ   CL+3            % NIX TJUV
       STZ   CL+5            % NIX PALADIN
L4,    AAA   -5              % -5 (KOLLA MAGIKER & TROLLKARL)
       JAP   L5
       STZ   CL+1            % NIX MAGIKER
       STZ   CL+4            % NIX TROLLKARL
L5,    LDA I (PBLK+114       % VISDOM
       AAA   -24             % -20 (KOLLA TJUV)
       JAP   L10
       STZ   CL+3            % NIX TJUV
L10,   AAA   -5              % -5 (KOLLA PR[ST & TROLLKARL)
       JAP   L6
       STZ   CL+2            % NIX PR[ST
       STZ   CL+4            % NIX TROLLKARL
L6,    AAA   -5              % -5 (KOLLA PALADIN)
       JAP   L7
       STZ   CL+5            % NIX PALADIN
L7,    LDA I (PBLK+115       % NUVARANDE KLASS
       JAZ   L12             % SIMPLETON
       ADD   (CL
       AAA   -1
       COPY  SA DX
       STZ   ,X              % INTE V[LJA NUVARANDE KLASS
L12,   STZ   KOLL
       LDX   (CL
L8,    LDA   KOLL
       ADD   ,X
       STA   KOLL
       AAX   1
       COPY  SX DA
       SUB   (RET
       JAF   L8
       LDA   KOLL            % ANTAL KLASSER ATT V[LJA MELLAN
       JAZ   NIX             % NOLL
MENU,  LDX   (T9             % KLASSER ATT V[LJA MELLAN:
       MON   32
       LDX   (CL
       STX   KOLL
L9,    LDX   KOLL
       LDA   ,X
       JAZ   NEXT
       LDX   KOLL
       AAX   7
       LDX   ,X
       MON   32
NEXT,  MIN   KOLL
       LDA   KOLL
       SUB   (RET
       JAF   L9
       LDX   (T2             % BYTA KLASS TILL?
       MON   32
       LDT   (SPILL          % BUFFER
       LDX   (T2             % TEXT VID AVBROTT
       JPL I (INPUT          % L[S STR[NG
       JXZ   ENDD
       LDT   (SPILL
       SAX   0
       LBYT                  % F\RSTA TECKNET
       ORA   (140            % KAN JU VARA SM] OXO, JU
       AAA   -141            % MINST ETT A SKA DET VARA
       JAN   MENU
       AAA   -6              % MAX ETT F
       JAP   MENU
       AAA   6               % A MELLAN 0 - 5
       STA I (QSAVE          % NY KLASS
       ADD   (CL
       COPY  SA DX
       LDA   ,X
       JAF   BYT
       LDX   (T01
       MON   32
       JMP   MENU
&
BYT,   MIN I (QSAVE          % R[TT # P] KLASSEN, TACK
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       SAA   1               % NIV] = 1
       STA I (PBLK+121       % NIV]
       LDF   (0              % NOLLST[LL ERF
       STF I (PBLK+52        % EXP
       LDA I (QSAVE          % NYA KLASSEN TILL...
       STA I (PBLK+115       % ..KLASS
       AAA   -1
       MPY   (3              % * 3
       ADD   (CV             % PEKAR P] NYA V[RDEN (ST, IQ, VS)
       COPY  SA DX
       LDA   (PBLK+112       % STYRKA
       COPY  SA DB
       SAT   3
L11,   LDA   ,X
       STA   ,B
       AAX   1
       AAB   1
       AAT   -1
       COPY  ST DA
       JAF   L11
       LDA I (CPLR           % SKRIV TILLBAKA SPELAREN
       JPL I (WTPLR
       LDT I (QSAVE          % KLASS
       SAA   24              % CPLR [R NU KLASS
       JPL I (AHAPP
       LDX   (T02            % OK.
END,   MON   32
ENDD,  LDA I (RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT SALDO
)9LIB SALDO
T1,    '[ndra saldo f|r pryl (1-'
T2,    ')?'
T3,    'Antal i lager ('
T4,    'Prylen existerar inte!'
RET,   0
SALDO, COPY  SL DX
       STX   RET
       SAT   0
       JPL I (RDATA
LP,    LDA I (DBLK+1         % PRYL#?
       LDX   (T1
       SAT   12
       MON   32
       MON   35
       LDX   (T2
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (ZSAVE
       JAZ   END
       SUB I (DBLK+1         % PRYL# - ANTAL PRYLAR
       AAA   -1
       JAP   ERR
       LDA I (ZSAVE
       ADD   (DBLK+107       % PEKA P] R[TT ADDRESS
       STA I (QSAVE
       COPY  SA DX
       LDA   ,X              % ANTAL PRYLAR
       LDX   (T3             % HUR M]NGA?
       SAT   12
       MON   32
       MON   35
       LDX   (T2
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (TSAVE
       JXZ   LP
       SAT   1
       JPL I (RDATA
       LDX I (QSAVE
       LDA I (TSAVE
       STA   ,X
       JPL I (WDATA
       JMP   LP
ERR,   LDX   (T4
       MON   32
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT PORTC
)9LIB PORTC
T1,    'Fr}n rum#1 till rum#'
ANTAL, 0
ROOM,  0
RET,   0
PORTC, COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       SAT   12
       JPL I (INBAZ
       JAZ   END
       STA   ROOM
LP,    LDA   ROOM
       SAT   1
       JPL I (RDROM
       STZ I (RBLK+261       % NOLLST[LL ANTAL SPELARE I RUMMET
       STZ I (RBLK+325
       LDA   (RBLK+325
       COPY  SA DX AD1
       SAT   37
       JPL I (LDIR
       LDA   ROOM
       JPL I (WTROM
       LDA   ROOM
       AAA   -1
       STA   ROOM
       JAF   LP
       SAT   0
       JPL I (RDATA
       LDA I (DBLK
       STA   ROOM            % ANTAL SPELARE
LP2,   LDA   ROOM            % SPELARE
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+74        % RUM
       SAT   1
       JPL I (RDROM
       MIN I (RBLK+261       % \KA ANTALET SPELARE
       LDX   (RBLK+325
G1,    LDA   ,X
       JAZ   G2
       AAX   1
       JMP   G1
G2,    LDA   ROOM
       STA   ,X
       LDA I (PBLK+74
       JPL I (WTROM
NADD,  LDA   ROOM
       AAA   -1
       STA   ROOM
       JAF   LP2
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT BEEP
)9LIB BEEP
T1,    'Beep p}'
T2,    'Beep av'
RET,   0
BEEP,  COPY  SL DX
       STX   RET
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+124       % FLAGS
       SAX   2               % TOGGLE BEEP FLAG
       REXO  SX DA
       STA I (PBLK+124
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+124
       AND   (2              % BEEP FLAG
       JAZ   OFF
       LDX   (T1
END,   MON   32
       LDA   RET
       COPY  SA DP
OFF,   LDX   (T2
       JMP   END
&
)9END
)CLEAR
)9BEG
)9ENT TELEP
)9LIB TELEP
T1,    'Teleportera vem?'
T2,    'H{r finns bara du.'
T3,    'Detta rum innehar inga magiska krafter.'
T4,    'Du har redan gjort ett f|rs|k i detta rum.'
T5,    'Du teleporterar stackaren...'
T6,    'Kraften byggs upp...'
T7,    'Spelaren m}ste vara vaken.'
RET,   0
TELEP, COPY  SL DX
       STX   RET
       LDA I (PBLK+74
       SUB I (PBLK+47        % TIDIGARE TELEPORT-RUM
       JAZ   ERR
       LDA I (PBLK+74        % RUM
       SAT   0
       JPL I (RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       JAZ   NP              % INGA SPELARE I RUMMET
       LDA I (RBLK+365       % TELEPORT TILL RUM
       JAF   OK
       LDX   (T3             % DETTA [R INGET MAGISKT RUM
       JMP   END
ERR,   LDX   (T4
       JMP   END
ERR2,  LDX   (T7
       JMP   END
&
NP,    LDX   (T2             % H[R FINNS INGA SPELARE
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
OK,    LDT   (SPILL
       SAX   0
       LBYT
       AAA   -47
       JAF   FR
L1,    LDX   (T1
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   ENDD
FR,    JPL I (GETNA
       JAZ   L1
       SAT   0
       JPL I (RDPLR          % L[S IN UTSATTA SPELAREN
       LDA I (PBLK+75        % STATUS
       JAF   ERR2            % INTE VAKEN
       LDA I (CPLR           % L[S CPLR F\R ATT S[TTA TELEPORTRUM
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+74
       STA I (PBLK+47        % TIDIGARE TELEPORTRUM
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+74        % L[S IN RUM F\R ATT FIXA R[KNARE
       SAT   1
       JPL I (RDROM
       LDA I (ZSAVE          % SPELARE ATT FLYTTA
       SUB I (RBLK+367       % TIDIGARE SPELARE ATT FLYTTA
       JAZ   L2              % SAMMA SPELARE, MINSKA R[KNARE
       LDA I (RBLK+366       % ANTAL/R[KNARE
       AND   (177400         % ANTAL
       COPY  SA DX
       SHA   ZIN SHR 10
       RADD  SX DA
       STA I (RBLK+366       % R[KNARE ETTST[LLD
L2,    LDA I (RBLK+366       % MINSKA R[KNAREN
       AAA   -1
       STA I (RBLK+366
       LDA I (ZSAVE          % UTSATTA SPELAREN
       STA I (RBLK+367       % SPARA I RUMMET
       LDA I (PBLK+74        % SPARA RUMMET
       JPL I (WTROM
       LDA I (RBLK+366       % R[KNAREN
       AND   (377            % R[KNAREN UTAN ANTAL
       JAZ   DOIT            % ACTION
       LDX   (T6             % KRAFTEN BYGGS UPP...
       MON   32
       LDA I (PBLK+74
       COPY  SA DD
       LDT I (ZSAVE
       SAA   27              % V[VER...
       JPL I (RHAPP
       JMP I (ENDD
&
DOIT,  LDA I (PBLK+74        % RUM
       COPY  SA DD
       LDT I (ZSAVE
       SAA   30              % TELEPORTERAR D1
       JPL I (RHAPP
       LDA I (PBLK+74        % L[S IN RUMMET F\R ATT PLOCKA BORT STACKAREN
       SAT   1
       JPL I (RDROM
       LDT I (ZSAVE
       JPL I (REMPL
       LDA I (PBLK+74
       JPL I (WTROM
       LDA I (RBLK+365       % NYA RUMS#
       STA I (QSAVE          % SPARAS
       SAT   1
       JPL I (RDROM          % L[S IN NYA RUMMET OCH L[GG TILL SPELAREN
       LDT I (ZSAVE          % SPELAREN
       JPL I (ADDPL          % ADDERA
       LDA I (QSAVE          % SKRIV TILLBAKA
       JPL I (WTROM
       LDA I (ZSAVE          % L[S IN SPELAREN OCH [NDRA RUMMET
       SAT   1
       JPL I (RDPLR
       LDA I (QSAVE
       STA I (PBLK+74
       LDA I (ZSAVE
       JPL I (WTPLR
       LDA I (CPLR           % L[S IN CPLR F\R ATT NOLLST[LLA TELEPRUM
       SAT   1
       JPL I (RDPLR
       STZ I (PBLK+47        % NOLLST[LL TELEPRUM
       LDA I (CPLR
       JPL I (WTPLR
       LDX   (T5             % LYCKAD TELEPORT
       MON   32
       JMP I (ENDD
&
)9END
)CLEAR
)9BEG
)9ENT VAKNA
)9LIB VAKNA
T1,    'Vakna spelare: '
T2,    '; '
ANTAL, 0
RET,   0
VAKNA, COPY  SL DX
       STX   RET
       JPL I (RDATA
       LDA I (DBLK
       STA   ANTAL
       LDX   (T1
       MON   32
LP,    LDA   ANTAL
       SAT   0
       JPL I (RDPLR
       LDA   ANTAL
       MPY   (20
       ADD   (100000
       STA I (QSAVE          % ADDR
       COPY  SA DX
       LDA   (PBLK
       JPL I (MOVST
       LDA I (PBLK+60        % SAMMANSLUTNING
       SHA   ZIN 10          % * 256
       ADD I (PBLK+75        % + STATUS
       LDX I (QSAVE
       STA   ,X 17
       LDA I (PBLK+75        % STATUS
       JAF   NEXT            % INTE VAKEN
       LDX   (PBLK
       MON   32
       LDX   (T2
       MON   32
NEXT,  LDA   ANTAL
       AAA   -1
       STA   ANTAL
       JAF   LP
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT HELA
)9LIB HELA
T3,    'Hela vem (<CR> hela dig sj{lv)?'
T4,    'Du helar'
T5,    ' po{ng.'
PTH,   0
RET,   0
CH,    0
DAM,   0
HELA,  COPY  SL DX
       STX   RET
       STA   CH              % 1 - USE ITEM/ 0 - SPELL
OK,    LDA I (CPLR
       STA   PTH
       LDA I (PBLK+115       % KLASS
       AAA   -6              % PALADIN
       JAF   NOPAL           % EJ PALADIN, INTE V[LJA VEM
       LDT   (SPILL          % PALADINER F]R V[LJA VEM SOM SKA HELAS
       SAX   0
       LBYT
       AAA   -47
       JAF   FR
       LDX   (T3             % PALADIN: HELA VEM?
       MON   32
       LDT   (SPILL
       LDX   (T3
       JPL I (INPUT
       JXZ   NOPAL
FR,    JPL I (GETNA
       JAZ   ENDD            % NAMNET EJ FUNNET, TILL RET
       LDA I (ZSAVE          % LITE OMST[NDIGT?
       STA I (PTH
NOPAL, LDA I (PBLK+114       % VISDOM; CAST: INTE MINSKA TROLLKRAFT N[R ANV[ND
       MPY I (PBLK+121       % * NIV]
       SHA   ZIN SHR 3       % / 8
       COPY  SA DX
       STZ   DAM
CALC,  MON   11              % TIME, ETT SLUMPTAL
       REXO  SD DA
       AND   (3
       ADD   DAM
       STA   DAM
       AAX   -1
       COPY  SX DA
       JAF   CALC
       MIN   DAM             % IFALL DET FORTFARANDE SKULLE VARA NOLL (0%?!)
       LDA I (PTH            % SPELARE SOM SKA HELAS
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+50        % HP
       ADD   DAM             % + HELA
       STA I (PBLK+50
       SUB I (PBLK+51        % KOLLA OM HP > HPSTAT
       AAA   -1
       JAN   ZAVE            % INTE ST\RRE
       LDA I (PBLK+51        % HP = HPSTAT
       STA I (PBLK+50
ZAVE,  LDA I (PTH            % SPARA SPELAREN
       JPL I (WTPLR
       LDA I (PBLK+74        % RUM TILL RHAPP
       COPY  SA DD
       LDT I (PTH            % D1
       SAA   31              % HELAR
       JPL I (RHAPP
       LDX   (T4             % DU HELAR
       MON   32
       LDA   DAM             % X
       SAT   12
       MON   35
       LDX   (T5             % PO[NG
       JMP   END
&
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT SPLS
)9LIB SPLS
F1,    '(EL4B)COVE-SPELLS'
FT,    #SY; #MB
FIL,   0
SPLS,  LDX   (F1
       LDA   (FT
       SAT   1
       MON   50
       MON   65
       STA   FIL
LP,    LDT   FIL
       MON   1
       JMP   END
       SAT   1
       MON   2
       MON   65
       JMP   LP
END,   LDT   FIL
       MON   43
       MON   65
       EXIT
&
)9END
)CLEAR
)9BEG
)9ENT ROB
)9LIB ROB
T1,    'Vem vill du r}na?'
T2,    'Du misslyckades...'
T3,    'H{r finns bara du.'
T4,    'Den spelaren {r inte vaken.'
T5,    'Den spelaren har inga prylar.'
T6,    'Du tar '
T7,    '.'
T8,    'Du har f|r m}nga prylar.'
RET,   0
ROB,   COPY  SL DX
       STX   RET
       LDA I (PBLK+130       % ANTAL PRYLAR
       AAA   -10
       JAF   CHRQ
       LDX   (T8
       JMP   END
CHRQ,  LDA I (PBLK+74
       SAT   0
       JPL I (RDROM
       LDA I (RBLK+261       % ANTAL SPELARE
       AAA   -1
       JAF   CH
       LDX   (T3             % BARA DU H[R
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
&
CH,    LDT   (SPILL
       SAX   0
       LBYT
       AAA   -47             % '
       JAF   FR
LP,    LDX   (T1             % R]NA VEM?
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   ENDD
FR,    JPL I (GETNA
       JAZ   LP              % NAMNET EJ FUNNET
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+75        % STATUS
       JAZ   OK              % VAKEN
       LDX   (T4             % SPELAREN INTE VAKEN
       JMP   END
&
DAM,   0
CALC,  STZ   DAM
       MON   11              % TIME
       REXO  SD DA
       AND   (17             % AND #$0F
       MPY I (PBLK+121       % * NIV]
       STA   DAM
       LDA I (PBLK+115       % KLASS
       AAA   -4              % TJUV
       JAF   ENDE
       SAA   4
       MPY   DAM
       STA   DAM
ENDE,  LDA   DAM
       EXIT
&
                             % OFFRET I ZSAVE
D1,    0                     % R]NARENS FIFFEL
OK,    LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       JPL   CALC            % BER[KNA FIFFLET F\R R]NAREN
       STA   D1              % R]NARENS FIFFEL
       LDA I (ZSAVE          % OFFRETS #
       SAT   0
       JPL I (RDPLR
       JPL   CALC
       SUB   D1
       JAN   ROBIT
       LDA I (PBLK+74
       COPY  SA DD
       LDT I (ZSAVE          % R]NAD SPELARE
       SAA   25              % F\RS\KER R]NA
       JPL I (RHAPP
       LDX   (T2
       JMP I (END
&
ROBIT, LDA I (PBLK+130       % ANTAL PRYLAR
       JAF   L1
       LDX   (T5             % INGA PRYLAR
       JMP I (END
&
PRYL,  0
L1,    LDX   (PBLK+134       % PRYL BUFFER
L2,    LDA   ,X
       JAF   L3
       AAX   1
       JMP   L2
L3,    STX I (QSAVE
       JPL I (RITEM
       LDX   (T6             % DU SER
       MON   32
       LDX   (IBLK+10        % L]NGNAMN
       MON   32
       LDX   (T7             % .
       MON   32
       LDA I (PBLK+74
       COPY  SA DD
       LDX I (QSAVE
       LDT   ,X              % PRYL#
       LDX I (ZSAVE          % OFFER#
       SAA   26              % R]NAR
       JPL I (RHAPP
       LDA I (ZSAVE
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+130       % MINSKA ANTALET PRYLAR
       AAA   -1
       STA I (PBLK+130
       LDX I (QSAVE
       LDA   ,X
       STA   PRYL
       STZ   ,X
       LDA I (ZSAVE
       JPL I (WTPLR
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       MIN I (PBLK+130       % \KA ANTALET PRYLAR
       LDX   (PBLK+134       % PRYL BUFF
L4,    LDA   ,X
       JAZ   L5
       AAX   1
       JMP   L4
L5,    LDA   PRYL
       STA   ,X
       LDA I (CPLR
       JPL I (WTPLR
       JMP I (ENDD
&
)9END
)CLEAR
)9BEG
)9ENT RD
)9LIB RD
T1,    '--------'
LAJN,  0
RET,   0
RD,    COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       LDX   (LF
       MON   32
       LDA   (200
       STA   LAJN
LP,    LDA   LAJN
       JPL I (RLINE
       LDX   (MBLK
       MON   32
       LDX   (LF
       MON   32
       MIN   LAJN
       LDA   LAJN
       SUB   (210
       JAF   LP
       LDX   (T1
       MON   32
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT WT
)9LIB WT
T1,    'Skriva vad?'
T3,    'Ok.'
RET,   0
WT,    COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   END
       SAT   1
       JPL I (RDATA
       MIN I (DBLK+3         % KLOTTERPEKARE
       JPL I (WDATA
       LDA   (SPILL
       LDX   (MBLK
       JPL I (MOVST
       LDA I (DBLK+3
       AND   (7
       ADD   (200
       JPL I (WLINE
       LDX   (T3
       MON   32
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT BLIXT
)9LIB BLIXT
T1,    'Anfalla vem?'
T2,    'Det finns ingen i rummet.'
T3,    'Din trollkraft r{cker inte till.'
T4,    'Du orsakar '
T5,    ' po{ngs skada.'
T6,    'Du kan inte uttala en s}dan f|rtrollning.'
T7,    'Du m}ste bli niv} tv} f|rst.'
T8,    'Du slog ihj{l el{ndet...'
T9,    'Du blir lagl|s...'
T01,   'BLIXT funkar inte!'
RET,   0
BLIXT, LDX   (T01
       MON   32
       EXIT
%BLIXT, COPY  SL DX          %!
       STX   RET
       LDA I (CPLR
       SAT   0
       JPL I (RDPLR
       JMP   QQ

% SKIPPAS:

       LDA I (PBLK+115       % KLASS
       AAA   -2              % =MAGIKER
       JAZ   OK
       AAA   -3              % =TROLLKARL
       JAF   ERR
       LDA I (PBLK+121       % NIV]
       AAA   -2
       JAP   OK
ERR2,  LDX   (T7             % NIV] F\R L]G (TROLLKARL)
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
ERR,   LDX   (T6
       JMP   END
ERR3,  LDX   (T3             % INGEN TROLLKRAFT
       JMP   END
ERR4,  LDX   (T2
       JMP   END
&
DAM,   0
OK,    LDA I (PBLK+116       % TK
       AAA   -2
       JAN   ERR3

% SKIPPAS ^^^

QQ,    LDA I (PBLK+74
       SAT   0
       JPL I (RDROM
       LDA I (RBLK+261
       AAA   -1
       JAZ   ERR4            % BARA DU I RUMMET
       LDT   (SPILL
       SAX   0
       LBYT
       AAA   -47
       JAF   FR
INPQ,  LDX   (T1
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   END
FR,    JPL I (GETNA
       JAZ   INPQ
       LDA I (ZSAVE
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+60        % SAMMANSLUTNING
       STA I (XSAVE
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDA I (XSAVE
       SUB I (PBLK+60
       JAF   NLOES
       STZ I (PBLK+60
       LDX   (T9             % DU BLIR LAGL\S
       MON   32
NLOES, LDA I (PBLK+116
       AAA   -2
       STA I (PBLK+116
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+74        % RUMS# TILL RHAPP
       COPY  SA DD
       LDA I (PBLK+113       % IQ
       MPY I (PBLK+121       % * NIV]
       SHA   ZIN SHR 2       % / 4
       STA   DAM
       LDX   (T4             % DU ORSAKAR
       LDA   DAM             % SKADA
       SAT   12
       MON   32
       MON   35
       LDX   (T5             % PO[NGS SKADA
       MON   32
       SAA   32              % KASTAR BLIXT
       LDT I (ZSAVE
       JPL I (RHAPP
       LDA I (ZSAVE
       SAT   1
       JPL I (RDPLR
       LDA I (CPLR
       STA I (PBLK+123
       LDA I (PBLK+50
       SUB   DAM
       STA I (PBLK+50
       LDA I (ZSAVE
       JPL I (WTPLR
       LDA I (PBLK+50        % HP
       AAA   -1
       JAP   O3
       LDX   (T8             % DU SLOG IHJ[L EL[NDET?
       MON   32
       LDA   (PBLK           % OFFRETS PBLK
       LDX   (XPBLK
       LDT   (400
       JPL I (LDIR
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR          % RDPLR
       LDA I (XPBLK+60       % DEN D\DADES SAMMANSLUTNING
       JAZ   KLOES           % LAGL\S
       MIN I (PBLK+61        % D\DADE FIENDER
       JMP   Z1
KLOES, MIN I (PBLK+102
Z1,    LDF I (XPBLK+52
       FAD I (PBLK+52
       STF I (PBLK+52
       LDA I (CPLR
       JPL I (WTPLR          %
       LDA   (XPBLK
       LDX   (PBLK
       LDT   (400
       JPL I (LDIR
       LDF   (0
       STF I (PBLK+52
       SAA   2
       STA I (PBLK+75        % STATUS=D\D
       LDA I (ZSAVE
       JPL I (WTPLR          %
       LDT I (ZSAVE
       SAA   14              % CPLR SLOG IHJ[L T
       JPL I (AHAPP
       LDA I (CPLR
       SAT   1
       JPL I (RDPLR
       LDA I (CPLR
       JPL I (WTPLR
O3,    JMP I (ENDD
&
)9END
)CLEAR
)9BEG
)9ENT SPCH
)9LIB SPCH
T1,    'Du kan inte uttala en s}dan f|rtrollning.'
T2,    'Du m}ste vara niv} '
T3,    ' eller h|gre.'
T4,    'Din trollkraft r{cker inte till.'
T5,    'Du uttalar f|rtrollningen och...$'
SPAD,  0
RET,   0
SPCH,  STX   SPAD            % SPELL ADDRESS, FIFFEL!
       COPY  SL DX
       STX   RET
       LDA I (PBLK+115       % KLASS
       JAZ   NOGOD           % SIMPLETON INTE KASTA SPELLS
       ADD   SPAD
       COPY  SA DX
       LDA   ,X
       JAF   OK
NOGOD, LDX   (T1
END,   MON   32
ENDD,  LDA   RET
       COPY  SA DP
ERR,   LDX   (T2
       SAT   12
       MON   32
       MON   35
       LDX   (T3
       JMP   END
ERR2,  LDX   (T4
       JMP   END
&
OK,    LDX I (PBLK+121       % NIV]
       SKP   IF DX GRE SA
       JMP   ERR
       LDA I (PBLK+116       % TROLLKRAFT
       LDX   SPAD
       LDX   ,X              % MIN TROLLKRAFT
       SKP   IF DA GRE SX
       JMP   ERR2
       LDA I (CPLR           % L[S IN CPLR F\R ATT MINSKA TROLLKRAFT
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+116       % MINSKA TROLLKRAFT
       LDX   SPAD
       SUB   ,X
       STA I (PBLK+116
       LDA I (CPLR
       JPL I (WTPLR
       LDX   (T5             % UTTALAR F\RTROLLNINGEN...
       MON   32
       SAA   0               % OK!
       LDX   RET
       COPY  SX DP
&
)9END
)CLEAR
)9BEG
)9ENT LISTA
)9LIB LISTA
ADR,   0
PRI,   STX   ADR
       SAX   0
LP2,   LDT   ADR
       LBYT
       AAA   -47
       JAZ   ENDP
       LBYT
       LDT   FILE
       MON   2
       MON   65
       AAX   1
       JMP   LP2
ENDP,  EXIT
&
T1,    'Lista alla spelare inom sammanslutning (0-3)?'
F1,    'LINE-PRINTER'
FT,    '    '
LFQ,   5015; 23400
FILE,  0
RET,   0
NUM,   0
LISTA, COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       SAT   12
       JPL I (INBAZ
       STA I (QSAVE
       JXZ   END
       LDX   (F1
       LDA   (FT
       SAT   0
       MON   50
       MON   65
       STA   FILE
       SAT   0
       JPL I (RDATA
       LDA I (DBLK
       STA   NUM
LP,    LDA   NUM
       SAT   0
       JPL I (RDPLR
       LDA I (PBLK+60        % SAMMANSLUTNING
       SUB I (QSAVE
       JAF   NEXT
       LDX   (PBLK
       JPL   PRI
       LDX   (LFQ
       JPL   PRI
NEXT,  LDA   NUM
       AAA   -1
       STA   NUM
       JAF   LP
       LDT   FILE
       MON   43
       MON   64
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT TOGAV
)9LIB TOGAV
T1,    'The Cove available'
T2,    'The Cove unavailable'
RET,   0
TOGAV, COPY  SL DX
       STX   RET
       SAT   1
       JPL I (RDATA
       LDA I (DBLK+4
       JAZ   DOAV
       STZ I (DBLK+4
       LDX   (T2
       JMP   PRUT
DOAV,  MIN I (DBLK+4
       LDX   (T1
PRUT,  MON   32
       JPL I (WDATA
       LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT RDALL
)9LIB RDALL
% L[S IN ALLA SPELARE & ALLA PRYLAR I MINNET...
RET,   0
RDALL, COPY  SL DX
       STX   RET
       SAT   0
       JPL I (RDATA
L1,    LDA I (DBLK           % SPELAR#
       SAT   0
       JPL I (RDPLR
       LDA I (DBLK
       MPY   (20
       ADD   (100000
       STA I (QSAVE          % ADDR
       COPY  SA DX
       LDA   (PBLK
       JPL I (MOVST
       LDX I (QSAVE
       LDA I (PBLK+60        % SAMMANSLUTNING
       SHA   ZIN 10          % * 256
       ADD I (PBLK+75        % + STATUS
       STA   ,X 17           % SPARAS I MINNET
       LDA I (DBLK
       AAA   -1
       STA I (DBLK
       JAF   L1
L2,    LDA I (DBLK+1
       JPL I (RITEM
       LDA I (DBLK+1
       MPY   (10
       ADD   (110000
       COPY  SA DX
       LDA   (IBLK
       JPL I (MOVST
       LDA I (DBLK+1
       AAA   -1
       STA I (DBLK+1
       JAF   L2
END,   LDA   RET
       COPY  SA DP
&
)9END
)CLEAR
)9BEG
)9ENT RESET
)9LIB RESET
T1,    'Helt s{ker (N)?'
RET,   0
RESET, COPY  SL DX
       STX   RET
       LDX   (T1
       MON   32
       LDT   (SPILL
       LDX   (T1
       JPL I (INPUT
       JXZ   END
       LDT   (SPILL
       SAX   0
       LBYT
       ORA   (140
       SUB   (150            % N
       JAF   RES
END,   LDA   RET
       COPY  SA DP
&
RES,   SAT   0
       JPL I (RDATA
LP,    LDA I (DBLK
       SAT   1
       JPL I (RDPLR
       SAA   20
       STA I (PBLK+50
       STA I (PBLK+51
       LDF   (0
       STF I (PBLK+52
       LDF   (1000
       STF I (PBLK+55
       SAA   1
       STZ I (PBLK+62
       STZ I (PBLK+63
       STZ I (PBLK+64
       STZ I (PBLK+65
       STZ I (PBLK+66
       STZ I (PBLK+67
       MON   11
       REXO  SD DA
       AND   (77
       AAA   10
       STA I (PBLK+74        % RUM
       SAA   1
       STA I (PBLK+75        % STATUS = S\MNIG
       STZ I (PBLK+76
       LDA   (764
       STA I (PBLK+100
       MIN I (PBLK+101
       STZ I (PBLK+110
       SAA   16
       STA I (PBLK+112
       STA I (PBLK+113
       STA I (PBLK+114
       SAA   1
       STA I (PBLK+121
       STZ I (PBLK+122
       MIN I (PBLK+125
       STZ I (PBLK+127
       STZ I (PBLK+130
       LDX   (PBLK+134       % PRYLBUFF
L1,    STZ   ,X
       AAX   1
       COPY  SX DA
       SUB   (PBLK+150
       JAF   L1
       LDA I (DBLK
       JPL I (WTPLR
       LDA I (DBLK
       AAA   -1
       STA I (DBLK
       JAF   LP
       JMP I (END
&
)9END
)9BEG
)9ENT OFFER
)9LIB OFFER
T1,    'Vad erbjuder du f|r att h|ja din '
TS,    'styrka'
TI,    'intelligens'
TV,    'visdom'
T2,    ' med en po{ng?'
T3,    'Munkarna tackar varmt f|r din g}va och f|rsvinner in i templet.'
T4,    'Munkarna blir v{ldigt f|rol{mpade n{r du f|rs|ker erbjuda mer guld {n du har.'
T5,    'Munkarna mediterar och du k{nner mer kraft fl|da genom din lekamen.'
TX,    TS; TI; TV
RET,   0
GP,    0                     % GULD I FICKAN / 64
OFFER, COPY  SL DX
       STX   RET
       LDA I (PBLK+100       % GULD
       SHA   ZIN SHR 6       % / 64
       STA   GP
       LDA I (PBLK+74        % RUMS#
       SAT   0
       JPL I (RDROM
       LDA I (RBLK+370       % RIGHT BYTE: 74-76 ST, IQ EL VS, 0 - KEINE
                             % (LEFT BYTE: GELD/64)
       JAF   OK
END,   LDA   RET
       COPY  SA DP
&
OK,    LDX   (T1
       MON   32
       AND   (377            % ST, IQ EL VS
       AAA   -112            % - 74
       ADD   (TX
       COPY  SA DX
       LDX   ,X
       MON   32
       LDX   (T2
       MON   32
       SAT   12
       JPL I (INBAZ
       JXZ   END             % INTRPT
       AND   (77777
       STA I (QSAVE          % ERBJUDANDE
       SHA   ZIN SHR 6       % / 64
       STA   GP
       LDA I (QSAVE          % GELDGELDGELDGULD
       SUB I (PBLK+100
       AAA   -1
       JAN   GF
       LDX   (T4             % INTE NOG
       MON   32
       JMP   END
&
GF,    LDA I (CPLR           % L[S IN SPELAREN F\R ATT MINSKA GULDET
       SAT   1
       JPL I (RDPLR
       LDA I (PBLK+100       % GULD
       SUB I (QSAVE          % - ERBJUDET
       STA I (PBLK+100
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (RBLK+370
       SHA   ZIN SHR 10      % / 256 = GELD / 64
       SUB I (GP             % ERBJUDET / 64
       JAN   INC             % OK, NOG ERBJUDET
       LDX   (T3             % VI TACKAR F\R DIN G]VA
       MON   32
       JMP   END
&
INC,   LDA I (CPLR           % L[S IN SPELAREN OCH \KA ST, IQ EL VS
       SAT   1
       JPL I (RDPLR
       LDA I (RBLK+370
       AND   (377            % ST, IQ EL VS
       ADD   (PBLK           % R[TT PLATS I PBLK
       COPY  SA DX
       MIN   ,X
       LDA I (CPLR
       JPL I (WTPLR
       LDA I (PBLK+74
       SAT   1
       JPL I (RDROM
       LDA I (RBLK+370
       SHA   ZIN SHR 10
       AAA   1
       JAF   ZAVE
       SAA   100             % 64 * 64 = 4096 = MINSTA GP ATT ERBJUDA
ZAVE,  SHA   ZIN 10
       STA I (QSAVE
       LDA I (RBLK+370
       AND   (377
       ADD I (QSAVE
       STA I (RBLK+370
       LDA I (PBLK+74
       JPL I (WTROM
       LDX   (T5
       MON   32
       JMP I (END
&
)9END
@
